关于最小割方案输出
查看原帖
关于最小割方案输出
654857
Ecaps楼主2024/7/18 16:17

这题为什么判断反向边是否有值(如下)不行

    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;
2024/7/18 16:17
加载中...