poj 1422 最小路径覆盖
2013-06-08 17:23
295 查看
//可转换为二分匹配 #include <iostream> #include <cstring> using namespace std; #define MAXN 122 int T; int n,m; int G[MAXN][MAXN]; int cx[MAXN],cy[MAXN]; int sx[MAXN],sy[MAXN]; int path(int u) { sx[u] = 1; for(int v = 1; v <= n;v++) { if(G[u][v] > 0 && (!sy[v])) { sy[v] = 1; if(!cy[v] || path(cy[v])) { cx[u] = v; cy[v] = u; return 1; } } } return 0; } int MaxMatch() { int res = 0; memset(cx,0,sizeof(cx)); memset(cy,0,sizeof(cy)); for(int i = 1; i <= n; i++) { if(!cx[i]) { memset(sx,0,sizeof(sx)); memset(sy,0,sizeof(sy)); res += path(i); } } return res; } int main() { cin>>T; while(T--) { memset(G,0,sizeof(G)); cin>>n>>m; while(m--) { int x,y; cin>>x>>y; G[x][y] = 1; } cout<<n - MaxMatch()<<endl; } return 0; }
相关文章推荐
- POJ 1422 Air Raid(二分图匹配最小路径覆盖)
- poj 1422 Air Raid (最小路径覆盖)
- poj 1422&&HDU 1151 Air Raid(最小路径覆盖)
- POJ 1422 二分匹配 最小路径覆盖(邻接表实现)
- POJ1422-Air Raid(最小路径覆盖)
- [POJ]1422-Air Raid(最小路径覆盖)
- poj1422最小路径覆盖
- hdu 1151 &&poj 1422 Air Raid (二分图匹配 最小路径覆盖)
- POJ 1422-Air Raid(二分图_最小路径覆盖)
- poj_1422_最小路径覆盖
- [poj] 1422 Air Raid || 最小路径覆盖
- POJ 1422 Air Raid 最小路径覆盖
- poj 1422 Air Raid 有向无环图最小路径覆盖=N-最大匹配
- Air Raid POJ1422 & HDU1151 最小路径覆盖
- POJ 1422 Air Raid 最小路径覆盖 构图!
- POJ 1422 最小路径覆盖
- POJ 1422 && HDU 1151 Air Raid(最小路径覆盖-hungary)
- POJ 1422Air Raid(二分图最大匹配之最小路径覆盖)
- poj 1422 Air Raid (最小路径覆盖白痴题)
- POJ 1422 && ZOJ 1525 Air Raid(有向图最小路径覆盖)