
二分图
acblacktea
永不放弃
展开
-
HDU 1045 二分图匹配
建图过程 主要是行列匹配的思想行列式独立的 先按行记录每个区域的车能走的左边界和右边界把这个左边界和右边界进行编号为c 再按列记录每个区域的车能走的上边界和下边界把这两个边界之间的点编号为e 然后遍历图的大小对于每个点link[c][e] = 1; 建图完毕#include<cstdio>#include<algorithm>#in原创 2016-08-04 22:27:21 · 723 阅读 · 0 评论 -
poj-3041-匈牙利算法模板
求最小点覆盖数 = 最大匹配数#include<cstdio>#include<cstring>bool way[505][505],usedif[505];int n,m,a,b,link[505];bool dfs(int s){ for(int j=1;j<=n;j++) { if(!usedif[j]&&way[s][j]) {原创 2016-01-14 00:07:02 · 443 阅读 · 0 评论 -
poj-3020-二分图最大匹配
知识点 1.最小边覆盖 = 定点数-最小点覆盖; 2.建图; 3为无向图 所有最小点覆盖要/2;#include<cstdio>#include<cstring>int dis[405][405],t,n,m,x[5] = {0,0,1,-1,0},y[5] = {1,-1,0,0,0},am[100][100],ans,link[405],usedif[405];char mp[100原创 2016-01-14 08:58:00 · 537 阅读 · 0 评论 -
hdoj 2389 二分图 Hopcroft-Carp 模板
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<queue>#define lson i<<1#define rson (i<<1)+1#define maxn 3005#define maxi 23333原创 2016-08-05 22:25:34 · 341 阅读 · 0 评论 -
HDU 3829 Cat VS Dog
建图过程 1:首先不能按直接的猫和狗建图 因为按题意来说这个既不是单匹配又不是多匹配 2:把喜欢猫不喜欢狗的和喜欢狗的不喜欢猫的分到两个集合,如果两个人其中一人喜欢的恰恰是另一个人不喜欢的,连一条边证明两人的喜好是矛盾的 3:然后就是最大独立集的问题了 套用公式最大独立集的点数 = n-最大匹配数#include<cstdio>#include<cstring>#inc原创 2016-08-06 22:23:25 · 360 阅读 · 0 评论 -
poj 2289 多匹配问题
就是记录每个被匹配点此时的匹配数量和匹配到的这几个点的信息#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<iostream>#include<vector>#define maxn 1005using namespace std;int n,m,used[maxn],flag[m原创 2016-08-06 22:25:53 · 499 阅读 · 0 评论 -
HDU 3488 KM算法求最优匹配模板
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;//模板copy的一位外校美女学姐的。。love数组代表两个集合互相的权值 N代表点数 下标从0开始%%%%const int MAXN = 305;const int INF = 0x3f3f3f3f;in原创 2016-08-08 21:00:30 · 603 阅读 · 0 评论 -
hdoj 5727 Necklace 二分图 全排列
因为是个串,先全排列n个阴珠子的顺序 (n-1)!种因为编号1可以固定在头部因为是个串 然后每种排列后记录n个阳珠子是否能插进n个间隙的信息 也就是每个珠子是否能和哪个间隙匹配,然后求最大匹配,囧~~~~`#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>using namespace std;in原创 2016-08-08 23:06:12 · 277 阅读 · 0 评论 -
hdoj 5556 Land of Farms 二分图匹配
合肥赛区的第二简单题 枚举原始农场的重建情况将剩下的点进行最大匹配求得独立集 注意不能连原始农场一起进行匹配,因为会形成有环图不是个二分图#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>using namespace std;int flag[105],lin原创 2016-08-09 22:58:21 · 339 阅读 · 0 评论