NBOJ 1182 Counter-Strike 二分图最大匹配
2012-07-06 19:37
183 查看
题目来源:http://cdn.ac.nbutoj.com/Problem/view.xhtml?id=1182
题意:题意很简单,就是一个人可以杀另外一组队伍里的几个人,规定一个人最多杀一个人,求最多能杀死多少人。
思路:裸的二分图最大匹配问题
代码:
题意:题意很简单,就是一个人可以杀另外一组队伍里的几个人,规定一个人最多杀一个人,求最多能杀死多少人。
思路:裸的二分图最大匹配问题
代码:
#include <iostream> #include <string.h> #include <cstdio> #include <vector> using namespace std; const int N = 510; #define CLR(arr,val) memset(arr,val,sizeof(arr)) vector<int> vv ; int visted ,flag ; bool dfs(int x){ for(int i = 0;i < vv[x].size();++i){ if(!visted[vv[x][i]]){ visted[vv[x][i]] = 1; if(!flag[vv[x][i]] || dfs(flag[vv[x][i]])){ flag[vv[x][i]] = x; return true; } } } return false; } int main(){ //freopen("1.txt","r",stdin); int n,m; while(scanf("%d%d",&n,&m) != EOF){ memset(vv,0,sizeof(vv)); int num,x; for(int i = 1;i <= n;++i){ scanf("%d",&num); while(num--){ scanf("%d",&x); vv[i].push_back(x); } } int cnt = 0; CLR(flag,0); for(int i = 1;i <= n;++i){ CLR(visted,0); if(dfs(i)) cnt++; } printf("%d\n",cnt); } return 0; }
相关文章推荐
- KM算法(二分图完备匹配下的最大权匹配)
- 二分图最大匹配算法-匈牙利算法(Hungary)模板
- HDU2444(判断是否为二分图,求最大匹配)
- 二分图的基本概念+二分图的最大匹配问题(匈牙利算法)
- HDU 1045 Fire Net (二分图的最大匹配)
- 二分图的最大匹配
- POJ 1719 二分图最大匹配(记录路径)
- HDOJ---1151 Air Raid[匈牙利算法:最小路径覆盖数=原图顶点数–二分图最大匹配数]
- NYOJ 237 游戏高手的烦恼 && POJ3041-Asteroids ( 二分图的最大匹配 )
- 二分图及其匹配算法——最大匹配数(最小覆盖数)、最大独立数、最小路径覆盖、带权最优匹配
- 8.5 --二分图最大匹配
- 二分图之最大匹配(匈牙利算法)
- [bzoj1854][Scoi2010]游戏(并查集/二分图最大匹配)
- Oil Skimming HDU - 4185 (二分图最大匹配)
- 透彻解析二分图最大匹配匈牙利算法模板
- Two Sides of the Same Coin --二分图的最大匹配
- 二分图的最大匹配_匈牙利算法
- POJ1486 Sorting Slides (二分图求最大匹配)
- 二分图最大匹配(匈牙利算法)
- POJ1325 Machine Schedule 二分图最大匹配