二分图匹配: 1.匈牙利算法 O(n * m) n为二分图左侧点数 m为二分图右侧点数 #include<bits/stdc++.h> using namespace std; const int N=1e7; struct node{ int from,to,nxt; }e[N]; int hea ...
分类:
其他好文 时间:
2020-01-26 22:05:33
阅读次数:
66
题目大意: 你有一个二分图,分别求出它的匹配数与各个连接匹配的两个点。 正文: 本题考虑用网络流,求匹配数就是二分图匹配模板,但是我们还要求各个连接匹配的两个点。 从网络流($\texttt{DINIC}$)的角度来思考,想匹配的边有什么特性。(给你几秒钟思考时间)我们发现不是匹配的边原来的边权($ ...
分类:
其他好文 时间:
2020-01-17 23:11:04
阅读次数:
97
基本思想是利用涂色的方法,用黑白两种颜色把方格全部涂色,相邻方格不同色。 方法1:基于二分图匹配的思想 一开始也想过二分图匹配,但数据量太大,就放弃了这种想法。其实根据增广路的定义。如果白色的方格的数量小于黑色方格数量,那么当白色方格还没有匹配完时,一定有黑色的方格没有匹配。那么从该白色的方格出发, ...
分类:
其他好文 时间:
2019-12-27 21:46:10
阅读次数:
71
线段树(区间修改,区间和):#include #include #include using namespace std;int c[1000000],n,m;char s;void update(int p,int l,int r,int x,int add){ int m=(l+r) / 2; ... ...
分类:
编程语言 时间:
2019-11-12 10:47:37
阅读次数:
67
将问题和锦囊二分图匹配即可,注意当某一个不合法就要退出 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 2005 4 struct ji{ 5 int nex,to; 6 }edge[N]; 7 int E,n,m,x,y,a ...
分类:
其他好文 时间:
2019-11-09 14:04:09
阅读次数:
107
匈牙利算法 Bfs判断是否为二分图 二分图建模多种算法 先来一发定理(再也不用担心我搞混最小路径覆盖点和最小路径覆盖边,做题也要注意问的是点还是边!!): 柯尼希定理:二分图最小点覆盖的点数=最大匹配数。 最小路径覆盖的边数=顶点数n-最大匹配数 最大独立集=最小路径覆盖=顶点数n-最大匹配数 二分 ...
分类:
其他好文 时间:
2019-11-06 22:29:21
阅读次数:
140
二分+最大流: 1 //题目大意:有编号为1~n的女生和1~n的男生配对 2 // 3 //首先输入m组,a,b表示编号为a的女生没有和编号为b的男生吵过架 4 // 5 //然后输入f组,c,d表示编号为c的女生和编号为d的女生是朋友 6 // 7 //进行配对的要求满足其一即可。 8 //1.a ...
分类:
其他好文 时间:
2019-11-06 16:44:23
阅读次数:
70
传送门 "Luogu" 解题思路 二分图匹配,关键是建图。 如果我们naive地直接把每个武器的两个属性分为两部建图的话,显然是跑不了的。 我们考虑把每一个武器的属性向它连边:$a_i \rightarrow i,b_i \rightarrow i$ 然后我们从属性这一部从小到大枚举,寻找增广路,直 ...
分类:
其他好文 时间:
2019-10-27 11:02:24
阅读次数:
86
题意:http://acm.hdu.edu.cn/showproblem.php?pid=5971 把已经告诉你的把能推测的都推测出来有矛盾就“NO”,剩下的跑二分图,矛盾就“NO”,剩下如果还有没有颜色的“NO”。 ...
分类:
其他好文 时间:
2019-10-26 23:25:51
阅读次数:
178
题意简述:有一个$n\times m$的矩阵$a$,$[1, n\cdot m]$的整数恰好在其中出现一次。我们需要执行以下三次操作: 将$a$的每一行$m$个数任意变换顺序,得到矩阵$b$。 将$b$的每一列$n$个数任意变换顺序,得到矩阵$c$。 将$c$的每一行$m$个数任意变换顺序,得到矩阵 ...
分类:
编程语言 时间:
2019-10-15 10:06:26
阅读次数:
109