下面是平平无奇的结构体边(有一个构造函数)
就是跑Kruskal用的那种
struct node{
int u,v,w;
node(int u0=0,int v0=0,int w0=0){
u=u0; v=v0; w=w0;
}
}e[M];
这样存边,没问题
for(int i=1;i<=m;++i){
int u=read(),v=read(),w=read();
e[i]=node(u,v,w);
}
但是我懒,这样写(也许还能快)
for(int i=1;i<=m;++i)
e[i]=node(read(),read(),read());
就有问题了!u和w会存反!
就是一条边:2 3 4
会成:4 3 2
把构造函数改成
node(int u0=0,int v0=0,int w0=0){
w=u0; v=v0; u=w0;
}
我又对了
大雾。。。