POJ 1815 最小点割集(二)
dge[S[i]].flow,id=i; for(int i=0;i
ans; addedge(0,s,INF);addedge(t+n,2*n+1,INF); int pre=sap(0,2*n+1,4*n+10); for(int i=1;i<=n;i++){ if(i==s||i==t)continue; mark[i]=1; memset(head,-1,sizeof(head));tol=0; for(int j=1;j<=n;j++){ if(mark[j])continue; if(j!=s&&j!=t)addedge(j,j+n,1); else addedge(j,j+n,INF); } for(int j=1;j<=n;j++){ for(int k=1;k<=n;k++){ if(flag[j][k]&&k!=j&&!mark[j]&&!mark[k]) addedge(j+n,k,INF); } } addedge(0,s,INF);addedge(t+n,2*n+1,INF); int ret=sap(0,2*n+1,4*n+10); if(ret