标签:style class blog http for line
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1143
题意:给出一个有向无环图。在其中找出一个最大的点集使得点集中任意两个点之间不可达。
思路:首先在给出图中跑一次floyd,这样g[i][j]=1则i可到达j。那么题意就是求最大独立集。最大独立集=|G|-最小顶点覆盖=|G|-二分图最大匹配。
int g[N][N],match[N],visit[N]; int n; int DFS(int u) { int i; FOR1(i,n) if(!visit[i]&&g[u][i]) { visit[i]=1; if(match[i]==-1||DFS(match[i])) { match[i]=u; return 1; } } return 0; } int m; int main() { RD(n,m); int i,x,y; FOR1(i,m) { RD(x,y); g[x][y]=1; } int j,k; FOR1(k,n) FOR1(i,n) FOR1(j,n) if(g[i][k]&&g[k][j]) { g[i][j]=1; } clr(match,-1); int ans=0; FOR1(i,n) { clr(visit,0); if(DFS(i)) ans++; } PR(n-ans); }
BZOJ 1143 祭祀 river(最大独立集),布布扣,bubuko.com
标签:style class blog http for line
原文地址:http://www.cnblogs.com/jianglangcaijin/p/3799614.html