二分匹配
lp_opai
我没有时间写一封简短的信,所以我写了一封长的。
展开
-
hdu 1281 棋盘游戏 (二分匹配)
//是象棋里的车 符合二分匹配 # include # include # include using namespace std; int n,m,pp[110][110],map[110],vis[110]; int bfs(int x) { for(int i=1;i<=m;i++) { if(!vis[i]&&pp[x][i]) { vis[i]=1; if(!ma原创 2014-08-07 14:46:48 · 703 阅读 · 0 评论 -
hdu 1150 Machine Schedule (经典二分匹配)
//A组n人 B组m人 //最多有多少人匹配 每人只有匹配一次 # include # include # include using namespace std; int n,m,k; int pp[1100][1100],map[1100],vis[1100]; int bfs(int x)//二分匹配模板 { for(int i=1;i<=m;i++)//B组中的人来迎合匹配 {原创 2014-08-07 09:58:10 · 739 阅读 · 0 评论 -
hdu2444 The Accomodation of Students(判断二分匹配+最大匹配)
//判断是否为二分图:在无向图G中,如果存在奇数回路,则不是二分图。否则是二分图。 //判断回路奇偶性:把相邻两点染成黑白两色,如果相邻两点出现颜色相同则存在奇数回路。也就是非二分图。 # include # include # include using namespace std; int vis[210],map[210][210],cott[210]; int c[210]; int原创 2014-08-09 22:35:17 · 798 阅读 · 0 评论 -
hdu 5090 Game with Pearls (二分匹配)
///给你n个管子原先有些珍珠 ///对这些管子有两种操作 1:不加珍珠 2: 加k倍数数目的珍珠 ///如果能使管子里的珍珠为1.2.3.4....n Jerry赢 ///解法:二分匹配 # include # include # include # include using namespace std; int map[110],pp[110][110],n,vis[110]; int原创 2014-11-02 18:59:04 · 708 阅读 · 0 评论 -
hdu4185 Oil Skimming(二分匹配)
# include # include # include using namespace std; int n,cot; int map[660],vis[660],pp[660][660],u[660][660]; int bfs(int x) { for(int i=1;i<=cot;i++) { if(!vis[i]&&pp[x][i]) { vis[i]=1;原创 2014-08-07 14:08:13 · 918 阅读 · 0 评论 -
hdu 1507 Uncle Tom's Inherited Land* (二分匹配)
/* 给你n*m的土地,有k个1*1的方块被挖掉, 现在你要卖剩下的地(<=50),地只能是1*2 或2*1卖,问你最多能卖几块。 并输出摆放方式 */ #include #include #include #include #include using namespace std; const int MAXN = 510; int uN,vN;//u,v的数目,使用前面必须赋值 i原创 2015-08-16 21:42:55 · 333 阅读 · 0 评论 -
hdu 4619 Warm up 2 (二分匹配)
/* 二分匹配 邻接表 (匈牙利算法) */ # include # include # include using namespace std; # define MAX 13000 int cnt; int n,m,map[MAX],vis[MAX],head[MAX]; int tot; struct node { // int u; int to; int next;原创 2015-07-23 19:08:18 · 398 阅读 · 0 评论 -
hdu 2119 Matrix (最小覆盖)
/* 题意: 一次消除一行或一列1,最少几次能把其中的1消去 最小覆盖==最大匹配 */ #include #include #include using namespace std; int map[110],vis[110]; int a[110][110]; int n,m; int bfs(int x) { int i; for(i=0;i<m;i++)原创 2015-08-04 21:46:17 · 379 阅读 · 0 评论 -
lightoj 1304 The Best Contest Site Ever (二分匹配)
/* 分块 行的快为一方 列的为另一方进行匹配 */ # include # include # include using namespace std; # define N 10010 int tot; int head[N]; int vis[N]; int link[N]; int uN; struct node { int to; int next; } Edg原创 2015-08-17 15:02:51 · 409 阅读 · 0 评论