今天打最短路径和强连通分量,最短路还有点思路,强连通分量是真的不行了,贴段代码过了
#include
#define P pair
using namespace std;
priority_queue <P,vector<P>,greater<P> > q;
int head[999999],nxt[999999],v[999999],w[999999],tot;
int n,m,a,b,c,d;
int dis[999999],st[999999];
void add(int x,int y,int z)
{
tot++;
nxt[tot]=head[x];
head[x]=tot;
v[tot]=y;
w[tot]=z;
}
void dj()
{
q.push({0,1});
for(int i=2;i=dis[id]+w[i])
{
dis[v[i]]=dis[id]+w[i];
q.push({dis[v[i]],v[i]});
}
}
}
}
int main()
{
freopen("circle.in","r",stdin);
freopen("circle.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d%d%d%d",&a,&b,&c,&d);
add(a,b,c);
add(b,a,d);
}
dj();
printf("%d",dis[n]);
return 0;
}