这题为什么判断反向边是否有值(如下)不行
for (int i=3;i<=tot;i+=2){
if (e[i].to==0&&e[i].val){
printf("%d ",e[i^1].to);
}
}
cout<<endl;
for (int i=3;i<=tot;i+=2){
if (e[i].to>=m+1&&e[i].to<=m+n&&e[i].val){
printf("%d ",e[i].to-m);
}
}
cout<<endl;
而输出有层数的点(如下)可以
for (int i=1;i<=m;i++){
if (dep[i]!=INT_MAX) printf("%d ",i);
}
cout<<endl;
for (int i=1;i<=n;i++){
if (dep[m+i]!=INT_MAX) printf("%d ",i);
}
cout<<endl;