为什么cnt从2开始,写i^1是对的:
cnt=1;
for(int i=1,u,v;i<=m;i++){
cin>>u>>v;
if(u==v) continue;
add(u,v),add(v,u);
}
void Tarjan(int x,int last){
dfn[x]=low[x]=++tot;
for(int i=head[x];i;i=e[i].next){
int y=e[i].to;
if(!dfn[y]){
Tarjan(y,i);
low[x]=min(low[x],low[y]);
if(dfn[x]<low[y]) line[i]=line[i^1]=true;
}else if(i!=(last^1)) low[x]=min(low[x],dfn[y]);
}
}
而当cnt从1开始,写((i-1)^1)+1时就错了。