图论-----------二分图
SingleK
这个作者很懒,什么都没留下…
展开
-
二分图的判定(模板)
采用DFS和黑白二着色的方法判定二分图vectorint> g[maxn];//邻接表int color[maxn];//1,2分别代表黑色和白色,0表示还没着色,调用前要把color数组初始化为0 bool bipartite(int u) {//判断结点u所在的联通分量是否为二分图 for (int i = 0; i < g[u].size(); ++i) {原创 2018-01-31 14:22:10 · 294 阅读 · 0 评论 -
Uvalive 3523 - Knights of the Round Table (双连通分量+二分图)
题目链接 https://vjudge.net/problem/UVALive-3523【题意】 有n个骑士经常举行圆桌会议,每次圆桌会议应至少有3个人参加且人数必须是奇数,相互憎恨的骑士不能坐在圆桌上的相邻位置,在知道了哪些骑士互相憎恨后,要求出有多少个骑士不能参加任何一次会议【思路】 大白书316页例题,以骑士为结点,两个骑士可以相邻(不憎恨)为边建立无向图,问题转换为求不在任何一...原创 2018-02-01 13:24:53 · 256 阅读 · 0 评论 -
HDU 5943 - Kingdom of Obsession(二分图匹配)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=5943【题意】给定n,s,现在让1-n和s+1,s+2...s+n这两堆数匹配,如果(s+i)%j==0那么s+i就可以和j构成一个匹配,求是否能让所有的n个数字都构成匹配。(n, s <= 1e9)【思路】首先,如果1-n这n个数中出现了素数那么就一定无法让所有数字都匹配,而2e9以内的数字里面...原创 2018-01-07 22:04:33 · 236 阅读 · 0 评论 -
二分图的最佳完美匹配(模板)
二分图的最佳完美匹配,也就是带权值的无向二分图中权值之和最大的完美匹配,整个图分为两个不相交的集合x和y,采用KM算法求解,也称匈牙利算法. 时间复杂度为O(n^3)typedef int type;//实际数据类型,一般是int或doubleconst type inf = 2e9;const dou...原创 2018-03-14 20:34:37 · 1990 阅读 · 0 评论 -
Uvalive 4043 - Ants(二分图完美匹配)
题目链接 https://vjudge.net/problem/UVALive-4043【题意】 给出n个白点和n个黑点的坐标,要求用n条不相交的线段把它们连起来,其中每条线段恰好连接一个白点和一个黑点,每个点恰好连接到一条线段【输入格式】 &...原创 2018-03-15 21:23:06 · 202 阅读 · 0 评论 -
二分图的最大匹配(模板)
二分图的最大匹配算法模板,复杂度是O(V*E),有关二分图匹配的算法详解 趣写算法系列之–匈牙利算法const int maxn = 105;int k, m, n;int girl[maxn];//girl[i]等于第i个女生匹配到的男生int line[max...原创 2018-03-14 15:59:36 · 464 阅读 · 0 评论 -
UVALive 3353 - Optimal Bus Route Design(二分图最小权匹配)
题目链接 https://cn.vjudge.net/problem/UVALive-3353【题意】 给你n个点(n<=100)的有向带权图,你要找到n个有向环,使得每个点恰好属于一个环,要求权值之和尽量小,注意即使边(u,v)和(v,u)都存在,它们的权值也不一定相同【思路】 每个点属于一个有向圈,意味着每个点有唯一的后继,根据这个性质来建图,每个点拆成一个X结点和一个Y结点...原创 2018-08-20 21:34:46 · 186 阅读 · 0 评论 -
UVA 11183 - Golden Tiger Claw(二分图最佳匹配)
题目链接 https://cn.vjudge.net/problem/UVA-11383【题意】 给一个n∗nn∗nn*n的矩阵,每个格子中有正整数w[i][j]w[i][j]w[i][j],试为每行和每列分别确定一个数字row[i]row[i]row[i]和col[i]col[i]col[i],使得任意格子w[i][j]<=row[i]+col[j]w[i][j]<=row[i...原创 2018-09-13 16:10:51 · 148 阅读 · 0 评论