![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM->二分图匹配
Fate_O
Lets go
展开
-
月老的难题 nyist239
月老的难题 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 月老准备给n个女孩与n个男孩牵红线,成就一对对美好的姻缘。 现在,由于一些原因,部分男孩与女孩可能结成幸福的一家,部分可能不会结成幸福的家庭。 现在已知哪些男孩与哪些女孩如果结婚的话,可以结成幸福的家庭,月老准备促成尽可能多的幸福家庭,请你帮他找出最多可能促成的幸福原创 2013-10-02 09:57:04 · 534 阅读 · 0 评论 -
poj 2226 二分图匹配的最小点覆盖建图
建图的时候,没遇到一个障碍物另开一行。 #include #include #include #include #include #include using namespace std; const int MAXN = 60; int cm[MAXN][MAXN], rm[MAXN][MAXN]; char str[MAXN][MAXN]; struct Edge {原创 2014-05-02 15:56:04 · 405 阅读 · 0 评论 -
hdu1533 going home 二分图最优匹配
二分图最优匹配 #include #include #include using namespace std; const int MAXN = 100 + 10; const int INF = (~0U >> 1); char temp[MAXN][MAXN]; int c[MAXN][MAXN]; int lx[MAXN], ly[MAXN]; bool visx[MA原创 2013-12-18 18:09:58 · 500 阅读 · 0 评论 -
hdu 1507 Uncle Tom's Inherited Land 黑白染色+奇偶婚配
#include #include #include using namespace std; const int MAXN = 101; int n, m, k; bool vis[MAXN][MAXN]; int c[MAXN][MAXN]; struct Node { int u, v; }match[MAXN][MAXN]; int dir[4][2] = {原创 2013-12-17 11:47:04 · 446 阅读 · 0 评论 -
hdu1498 二分图匹配(多次最小点覆盖)
#include #include #include using namespace std; const int MAXN = 100 + 10; int n, k; int c[MAXN][MAXN]; int ans[MAXN]; int match[MAXN]; bool vis[MAXN]; int cur; bool dfs(int u) { for (int i原创 2013-12-17 10:35:48 · 484 阅读 · 0 评论 -
hdu1281 二分图匹配_必要边
小希和Gardon在玩一个游戏:对一个N*M的棋盘,在格子里放尽量多的一些国际象棋里面的“车”,并且使得他们不能互相攻击,这当然很简单,但是Gardon限制了只有某些格子才可以放,小希还是很轻松的解决了这个问题(见下图)注意不能放车的地方不影响车的互相攻击。 所以现在Gardon想让小希来解决一个更难的问题,在保证尽量多的“车”的前提下,棋盘里有些格子是可以避开的,也就是说,不在这些格子上放车原创 2013-12-17 08:58:13 · 522 阅读 · 0 评论 -
hdu1068 二分图最大独立子集
#include #include using namespace std; const int MAXN = 101; int n, m; int c[MAXN][MAXN]; int match[MAXN]; bool vis[MAXN]; void init() { memset(match, -1, sizeof(match)); } bool dfs(int u)原创 2013-12-16 11:42:28 · 480 阅读 · 0 评论 -
hdu1528 二分图匹配
注意字母转换: A = 14 K = 13 Q = 12 J = 11 T = 10 5个 #include #include #include using namespace std; const int MAXN = 60; int n; char temp[MAXN][2]; char flag[原创 2013-12-17 16:27:58 · 457 阅读 · 0 评论 -
二分图匹配总结
1。二部图: 如果图G=(V,E)的顶点集何V可分为两个集合X,Y,且满足 X∪Y = V, X∩Y=Φ,则G称为二部图;图G的边集用E(G)表示,点集用V(G)表示。 2。匹配: 设M是E(G)的一个子集,如果M中任意两条边在G中均不邻接,则称M是G的一个匹配。M中的—条边的两个端点叫做在M是配对的。 3。饱和与非饱和: 若匹配M的某条边与顶点v关联,则称M饱和顶点v,并且原创 2013-12-17 10:40:21 · 670 阅读 · 0 评论 -
hdu1150 二分图匹配的最小点覆盖
#include #include using namespace std; const int MAXN = 101; int n, m; int c[MAXN][MAXN]; int match[MAXN]; bool vis[MAXN]; void init() { memset(match, -1, sizeof(match)); } bool dfs(int u)原创 2013-12-16 11:43:23 · 485 阅读 · 0 评论 -
hdu1151 二分图匹配最短路径覆盖
二分图匹配的最短路径覆盖 intersections :交叉点 paratroopers :伞兵 #include #include #include using namespace std; const int MAXN = 120 + 10; int n, m; struct Edge { int v, next; }edge[MAXN * MAXN]原创 2013-12-17 08:36:09 · 508 阅读 · 0 评论 -
ACM-> 二分图的最优匹配
Similarity Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status Practice HDU 3718 Description When we were children, we were always asked to do原创 2013-10-31 19:50:04 · 674 阅读 · 0 评论 -
ACM->uvalive->Sentry Robots(二分图匹配的最小点覆盖)
Sentry Robots Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Practice UVALive 6156 Description We need to guard a set of points of interest原创 2013-10-21 11:10:52 · 766 阅读 · 0 评论 -
匈牙利算法
二分图匹配的算法,二分图就是把图上的点分成两个互不相交的点集,而图中的边的端点只能分别属于这两个点集. 二分图的匹配,就是婚配问题,左边的点集男性,右边的点集女性,然后相互配对(一夫一妻);最大匹配就是让好事最多. 匈牙利算法可以实现这个东西. 匈牙利算法怎么实现的这个东西.这个比较多.代码如下: #include #include #include #define原创 2013-09-21 18:19:41 · 572 阅读 · 0 评论 -
hdu2444 二分图判定+匹配
判定一个图是否是二分图,可以将此图染色判定原创 2014-05-02 16:26:00 · 419 阅读 · 0 评论