poj 3342 Party at Hali-Bula 判断二分图最大点独立集是否唯一
2015-02-06 15:52
399 查看
题意:
给一个二分图,判断最大点独立集是否唯一。
分析:
匈牙利算法。
代码:
给一个二分图,判断最大点独立集是否唯一。
分析:
匈牙利算法。
代码:
//poj 3342 //sep9 #include <iostream> #include <string> #include <map> using namespace std; const int maxN=212; int n; int M,v1,v2; bool g[maxN][maxN]; bool vis[maxN]; int link[maxN]; map<string,int> name; bool dfs(int x) { for(int y=1;y<=v2;++y) if(g[x][y]&&!vis[y]){ vis[y]=true; if(link[y]==0||dfs(link[y])){ link[y]=x; return true; } } return false; } void hungary() { memset(link,0,sizeof(link)); for(int x=1;x<=v1;++x){ memset(vis,false,sizeof(vis)); if(dfs(x)) ++M; } return ; } int main() { while(scanf("%d",&n)==1&&n){ memset(g,false,sizeof(g)); name.clear(); int i,j; string a,b; cin>>a; int t=0; for(i=0;i<n-1;++i){ cin>>a>>b; if(name[a]==0) name[a]=++t; if(name[b]==0) name[b]=++t; int x=name[a]; int y=name[b]; g[x][y]=g[y][x]=1; } M=0; v1=v2=n; hungary(); printf("%d ",n-M/2); int m=M; int ok=1,set_unique=1; for(i=1;i<=n&&ok;++i){ for(j=1;j<=n;++j) if(g[i][j]==1&&link[j]==i){ g[i][j]=g[j][i]=0; M=0; hungary(); if(M<m){ set_unique=0; ok=0; break; } g[i][j]=g[j][i]=1; } } if(set_unique==1) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- POJ3342 Party at Hali-Bula(树型DP求最大独立集+唯一解判断)
- POJ 3342 Party at Hali-Bula (树形dp 树的最大独立集 判多解 好题)
- POJ 3342 Party at Hali-Bula (树形dp 树的最大独立集 判多解 好题)
- POJ - 3342 - Party at Hali-Bula (树形dp + 判断唯一解)
- POJ 3342 Party at Hali-Bula 树形DP 最大独立集
- poj 3342 Party at Hali-Bula(树形DP+判断方式是不是唯一)
- uva 1220 ,Patty at Hali-Bula 树形dp 树上最大独立集 并判断是否唯一
- POJ 3342 - Party at Hali-Bula 树形DP+最优解唯一性判断
- UVA - 1220 ( Party at Hali-Bula)(树形dp—树的最大独立集+判断唯一性)
- 【hdu 2412 Party at Hali-Bula 】(树形dp求最大独立集+判断唯一性)
- UVA1220Party at Hali-Bula(树的最大独立集 + 唯一性判断)
- POJ 3342 - Party at Hali-Bula 树型DP+最优解唯一性判断
- POJ3342——Party at Hali-Bula
- 树形动态规划 POJ 3342 Party at Hali-Bula
- POJ 3342 Party at Hali-Bula
- POJ3342 HDU2412 Party at Hali-Bula
- POJ3342 Party at Hali-Bula(树的最大独立集-树形DP-刷表法)
- POJ_3342_Party_at_Hali-Bula
- poj 3342Party at Hali-Bula
- POJ 3342 Party at Hali-Bula