关于成对变换
查看原帖
关于成对变换
616733
Lysea楼主2023/8/9 13:52

为什么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时就错了。

2023/8/9 13:52
加载中...