解题思路:
本题要求的为最小点覆盖,最小点覆盖 == 最大匹配,要注意初始为模式0,没有消耗,所以模式0不需要连边。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long
#define FOR(i, x, y) for(int...
分类:
系统相关 时间:
2015-04-01 23:50:54
阅读次数:
181
题目地址:http://poj.org/problem?id=2446本题建图是关键。因为卡片都是1*2,所以若点V被某个1*2卡片覆盖,则周围包含V的其它1*2区域都不成立。所以想到只要把V点划分在X集合,周围点在Y集合,V向周围点分别连边,就变成了二分图匹配问题,区分点V与周围点可以用横纵坐标之...
分类:
其他好文 时间:
2015-03-30 18:27:21
阅读次数:
131
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long
#define FOR(i, x, y) for(int i=x;i<=y;i++)
using namespace std;
const int MAXN = 600 + 10...
分类:
其他好文 时间:
2015-03-30 16:22:38
阅读次数:
128
解题思路:
裸的匈牙利算法,看最大匹配是否等于P;
#include
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 500;
int p, n;
int G[MAXN][MAXN];
int match[MAXN];
int vis[MAXN];
int path...
分类:
其他好文 时间:
2015-03-30 11:28:29
阅读次数:
118
解题思路:
枚举棋盘上所有格子,如果讲该点删除后,最大匹配数会减少,则该点为关键点。
#include
#include
#include
#include
#include
#include
using namespace std;
const int MAXN = 100 + 10;
int G[MAXN][MAXN];
int vis[MAXN];
int match[MAX...
分类:
其他好文 时间:
2015-03-30 11:24:10
阅读次数:
106
题目大意:
现在有5种型号(S、M、L、X、T)的衣服要发放给N个参赛队员。给出每个参赛者所需要衣服型号的范围。
在这个范围内的型号参赛者都能接受。再给出这5种型号衣服各自的数量,那么问题来了:是否存在一种
分配方案使得所有参赛队员都能够拿到自己型号范围内的衣服。
思路:
二分图匹配是一个对一个的匹配,这里是一对多匹配,需要用二分图多重匹配的模型来做。具体就是把原
先匈牙利算法中的cy[MAXN]更换为一个2维数组cy[MAXN][MAXN]。cy[i][j]表示与元素yi匹配的第j个元
素,同时用vey...
分类:
其他好文 时间:
2015-03-17 10:36:37
阅读次数:
123
题目大意:
学校总共有N门课程,并且学校规定每天上12节可,一周上7天。给你每门课每周上的次数,和哪一天哪一节
课上的。如果有多门课程在同一天同一节课上,那么你只能选择其中一门。那么问题来了:最多能同时选多少
门课而不发生冲突呢。
输入说明:
先给你一个N,表示有N门课。接下来N行,每行第一个数字x,表示这门课每周上几节。接下来是x对数。第
一个数D表示是这一周哪一天上的,第二个数C表示是这一天哪一节课上的。
思路:
将这道题来看做二分图匹配问题。建立一个二分图,一边代表课程,一边代表某一节课(将一周7...
分类:
其他好文 时间:
2015-03-17 09:02:47
阅读次数:
138
网络流/二分法 最大值最小……直接做不太好做的时候就可以用二分+判定来搞。 这题我们就也可以二分最大胜场v,那么怎么来判定呢?首先我们发现:每场比赛要么A赢,要么B赢,这一点跟二分图匹配非常类似,那么我们就可以建二分图:左部是参赛队伍,右边的结点表示每场比赛,对于第 i 场比赛:两支参赛队伍连x.....
分类:
其他好文 时间:
2015-03-15 12:23:34
阅读次数:
129
最大二分图匹配,O(n^3). 1 /* 2255 */ 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 9 #define MAXN 30510 #define INF 0x...
分类:
其他好文 时间:
2015-03-15 12:06:09
阅读次数:
124
题目大意:
给你一个n*m的0,1矩阵(n,m
两个士兵相邻,问最多可以放多少个?
解题思路:
首先对根据i+j的奇偶性构建二分图,然后跑一个最大匹配,然后ans=1的个数-最大匹配数应该脑补一下就行了吧。。。。。
然后就是输出的问题了。
首先找到在二分图匹配中没有被匹配到得点,然后将其置为放置士兵,然后在从这个点往周围走,如果周围的点是二分图中匹配的点,我们设这个点为...
分类:
其他好文 时间:
2015-03-10 15:36:25
阅读次数:
178