![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分图匹配
文章平均质量分 58
KubeSpace
这个作者很懒,什么都没留下…
展开
-
poj 2239 Selecting Courses
挺裸的二分匹配!匈牙利算法:#include#include#includeusing namespace std;int g[305][90];int vis[305];int link[305];int n,m;int dfs(int u){ for(int i=1;i<=m;i++) if( !vis[i] && g[u][i] ) { vis[原创 2013-05-17 17:59:36 · 425 阅读 · 0 评论 -
poj 3692 Kindergarten
把不认识的两两相连。那么,最后所求为最大独立集=n-最大匹配。。。匈牙利算法:#include using namespace std;int g[205][205];int vis[205];int link[205];int gr,b,m;int dfs(int u){ for(int i=1;i<=b;i++) if( !vis[i] && g原创 2013-05-13 19:57:47 · 391 阅读 · 0 评论 -
hdu 4160 Dolls
建图:把可以装进去的建立连接。然后,就是很裸的二分匹配了。。。 #include#include#includeusing namespace std;int n;int g[505][505];int vis[505];int link[505];struct Doll{ int w,l,h;}d[505];void judge(Doll a,Dol原创 2013-05-13 09:51:55 · 439 阅读 · 0 评论 -
hdu 2063 过山车
很裸的二分匹配。。。 #include#include#includeusing namespace std;int g[505][505];int vis[505];int link[505];int n,m,k;bool dfs(int u){ for(int i=1;i<=n;i++) if(g[u][i] && !vis[i])原创 2013-05-13 09:49:51 · 445 阅读 · 0 评论 -
poj 1469 && hdu1083 COURSES
二分最大匹配。。。记得数组开大。。wa了两次。。。 匈牙利(Hangary)算法:#include#include#includeusing namespace std;int g[305][305];int vis[305];int link[305];int p,n;bool dfs(int u){ for(int i=1;i<=n;i++) if(原创 2013-05-12 14:26:13 · 523 阅读 · 0 评论 -
hdu 2389 Rain on your Parade
很裸的二分匹配。。。每个人可以到达第几把伞,然后建立二分图。。不过,匈牙利算法TLE,可以用H_K(Hopcroft_Karp)算法 #include#include#include#include#includeusing namespace std;#define INF 10000000struct Guest{ int x; int y;原创 2013-05-12 15:14:21 · 530 阅读 · 0 评论 -
hdu 2444 The Accomodation of Students
判断一下是否为二分图。然后就是简单的二分图匹配了。。。为什么是否为二分图,跟这道题有联系?这道题如果同一边有认识的,那么输出‘NO’。可以把任意一个点标记为1,然后,跟他相连的的其余点标记为-1,然后,依次扩展。这时候,如果一个点i跟他相连的其中一个点j已经标记了。那么,也就是说,i,j都已经跟起点各自归到了一边了。如果,i,j的标记一样,那么,他们是在同一边的。不一样,那么,在不原创 2013-05-13 09:39:46 · 459 阅读 · 0 评论 -
poj 2195 Going Home
很裸的二分图最优匹配把每个‘m’距离其他所有的‘H’之间的权值求出,建立二分图。求出最优匹配。求最小权值,只需把所有的权值取相反数,求出最大权值,再取相反数。 求最优匹配,跟求网络流思想一样,中间有个转换的思想,即有一个反悔的操作,网上资料一大堆呢! #include#include#include#includeusing namespace std;#defi原创 2013-05-12 13:54:00 · 498 阅读 · 0 评论 -
poj 1274 The Perfect Stall
很裸的二分最大匹配。。。用的H_K(Hopcroft_Karp) #include#include#include#includeusing namespace std;#define INF 10000000queue q;int g[205][205];int distx[205],disty[205];int linkx[205],linky[205];in原创 2013-05-12 15:09:38 · 446 阅读 · 0 评论 -
poj 3014 Asteroids
二分图最大匹配。建图:按照每行与每列的连接!比如,第一行与第一列、第三列连接。。。这样就可以建立一个二分图。然后,求出最小点覆盖,即求出最少的点数,这些点可以把所有的边都覆盖。最小点覆盖=最大匹配。 写了两种匹配,匈牙利(Hungary) 和 Hopcroft-Karp 1. Hungary() #includeusing namespace std;in原创 2013-05-12 13:23:19 · 502 阅读 · 0 评论 -
poj 2446(二分匹配) Chessboard
按照奇偶点建立二分图。然后,就是二分最大匹配! #include#include#include#includeusing namespace std;int vis[1500];int match[1500];int map[40][40];int dir[4][2]={ {-1,0},{0,1},{1,0},{0,-1} };int m,n,k;vector原创 2013-05-17 18:02:57 · 448 阅读 · 0 评论 -
hdu 1068 Girls and Boys
最大二分匹配。题目所求为最大独立集=n-最大匹配Hopcroft-krap()算法:#include #include #include #include using namespace std;#define INF 10000000queue q;int g[505][505];int vis[505];int distx[505],disty[505];原创 2013-05-13 19:55:21 · 607 阅读 · 0 评论