struct edg{
int next,to,wi;//next表示下一条边的编号,to表示当前边的终点,wi表示当前边的权值
}s[maxn*2];
int head[maxn];//如;head[a]表示以a为起点的第一条边的编号,初始值为-1
int cnt=0;
void add(int u,int v,int w){//加边
s[cnt].to=v;
s[cnt].wi=w;
s[cnt].next=head[u];
head[u]=cnt++;
}
int u=be;//遍历以u为起点的所有边
for(int i=head[u];i!=-1;i=s[i].next)