[poj] 1422 Air Raid || 最小路径覆盖
2017-12-08 16:11
381 查看
原题
有n个点和m条有向边,现在要在点上放一些伞兵,然后伞兵沿着图走,直到不能走为止
每条边只能是一个伞兵走过,问最少放多少个伞兵
最小路径覆盖棵题,最小路径覆盖=n-最大匹配数
#include<cstdio> #include<cstring> #define N 150 using namespace std; int t,n,m,lover ,e ,ans; bool vis ; int read() { int ans=0,fu=1; char j=getchar(); for (;(j<'0' || j>'9') && j!='-';j=getchar()) ; if (j=='-') j=getchar(),fu=-1; for (;j>='0' && j<='9';j=getchar()) ans*=10,ans+=j-'0'; return ans*fu; } bool find(int x) { for (int i=1;i<=n;i++) { if (e[x][i] && !vis[i]) { vis[i]=1; if (!lover[i] || find(lover[i])) { lover[i]=x; return 1; } } } return 0; } int main() { t=read(); while (t--) { ans=0; n=read(); m=read(); memset(e,0,sizeof(e)); memset(lover,0,sizeof(lover)); for (int i=1,a,b;i<=m;i++) { a=read(); b=read(); e[a][b]=1; } for (int i=1;i<=n;i++) { memset(vis,0,sizeof(vis)); if (find(i)) ans++; } printf("%d\n",n-ans); } return 0; }
相关文章推荐
- POJ 1422 Air Raid(二分图匹配最小路径覆盖)
- POJ1422-Air Raid(最小路径覆盖)
- poj 1422 Air Raid (二分图+有向图最小不相交路径覆盖)
- POJ 1422 Air Raid(DAG最小路径覆盖)
- POJ 1422 Air Raid (最小路径覆盖)
- POJ1422——Air Raid(二分图,最小路径覆盖)
- 最小路径覆盖 poj1422 Air Raid
- poj 1422&&HDU 1151 Air Raid(最小路径覆盖)
- poj 1422 Air Raid 最小路径覆盖
- POJ 1422 Air Raid(二分图匹配最小路径覆盖)
- POJ-1422-Air Raid (二分图 最小路径覆盖)
- POJ 1422 Air Raid 最小路径覆盖 构图!
- POJ-1422-Air Raid(二分图最小路径覆盖)
- POJ - 1422 Air Raid (最小路径覆盖 = 总点数 - 最大匹配)
- POJ 1422 Air Raid(DAG最小路径覆盖)
- poj1422 Air Raid 二分匹配之最小路径覆盖
- HDU 1151 & POJ 1422 Air Raid【最小路径覆盖】
- poj 1422 Air Raid 最小路径覆盖
- POJ 1422 Air Raid 最小路径覆盖
- POJ 1422 Air Raid(匈牙利算法—最小路径覆盖)