Lysea @ 2023-08-09 13:52:55
为什么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
时就错了。
by Lysea @ 2023-08-09 14:00:42
@gty314159 第二种不对吗?
by Iniaugoty @ 2023-08-09 14:07:40
@Sands_Of_Time 呃看错了,看起来没有问题
by Iniaugoty @ 2023-08-09 14:07:56
等一下我去机房了
by MushR @ 2023-08-09 14:44:18
有个问题:
(i^1)+1
和 ((i-1)^1)+1
不是一样的ma
by Lysea @ 2023-08-09 19:42:10
@wjiay 不一样吧,对于偶数来说,一个是往上变换,一个是往下变换