二分图匹配
Ray.C.L
不开longlong见祖宗
展开
-
捉迷藏(二分图,最小路径重复覆盖)
最小路径覆盖:用最少互不相交的路径,将点全部覆盖。最小路径重复覆盖:用最少多少条路径覆盖所有点,路径可以有公共点和公共边。在二分图中:最小路径覆盖=总点数-最大匹配数。在DAG图G中的最小路径重复覆盖==在他的传递闭包图G’中的最小路径覆盖。代码:#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;typedef long long ll;typedef unsigned long long u.原创 2021-03-17 21:46:34 · 349 阅读 · 0 评论 -
骑士放置(最大独立集)
思路:在位置x,y上走日字形,x+y+跳跃点坐标必定会从奇数变成偶数或者偶数变成奇数,可以形成一个二分图,不相互攻击就是点之间没有边,求最多的点之间没有边相连就是求最大独立集。二分图中最大独立集=点数-最大匹配数,在本题还要减去不能跳的地方代码:#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;typedef long long ll;typedef unsigned long long ull;.原创 2021-03-16 22:50:35 · 194 阅读 · 0 评论 -
机器任务(最小点覆盖)
思路:有N,M,2种点,选1个点可以完成与点相连的所有边的任务,立即推是最小点覆盖,在二分图中最小点覆盖就等于最大匹配数代码:#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;typedef long long ll;typedef unsigned long long ull;#define SIS std::ios::sync_with_stdio(false)#define space .原创 2021-03-16 21:02:15 · 149 阅读 · 0 评论 -
棋盘覆盖(二分图匹配)
思路:原创 2021-02-26 19:14:16 · 341 阅读 · 0 评论 -
关押罪犯(二分+染色)
思路:求最大值最小,我们看能不能二分,我们二分出答案ans,然后我们吧大于等于ans的2个人关在不同的监狱,我们通过染色判断这种分配是否可以,如果在答案为ans可以的话,那么就说明可以继续往小划分,如果不选那就只能增大ans。代码:#pragma GCC optimize(2)#include<bits/stdc++.h> using namespace std;typedef long long ll;typedef unsigned long long ull;#defin.原创 2021-02-26 11:45:11 · 101 阅读 · 0 评论 -
双栈排序(二分图判断+思维)
思路:要使用2个栈操作使得序列升序,我们可以发现当2个数a[i] a[j]不能放入同一个栈中的时候,要满足条件 i<j<k && a[k]<a[i]<a[j]这里呢,我们用dp[i]表示从i开始到结尾的最小值,不能放到同一个栈中我们就把他分开,这样我们要求的就是能不能构成2个符合条件的独立集,我们根据这个条件去建图,当a[i] a[j]不能放入同一个栈中,我们将i,j建一条边,然后用染色法判断二分图,不能构成二分图答案就是0,能构成的话,我们先涂的色为1,后涂色为..原创 2020-08-07 17:35:42 · 234 阅读 · 0 评论 -
Acwing 861(匈牙利算法求二分图最大匹配)
思路:匈牙利算法求二分图最大匹配(算法的关键就在能不能过户给下家 )#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long lo...原创 2020-05-04 15:26:13 · 217 阅读 · 0 评论 -
860 Acwing(染色法判断二分图)
思路:二分图不会出现奇数环,利用这个性质进行染色。#include <cstdio>#include <cstring>#include <algorithm>#include <set>#include<bits/stdc++.h>using namespace std;typedef long long ll;#de...原创 2020-05-04 12:01:57 · 194 阅读 · 0 评论 -
Rain on your Parade HDU - 2389(HK算法模板二分图匹配)
You’re giving a party in the garden of your villa by the sea. The party is a huge success, and everyone is here. It’s a warm, sunny evening, and a soothing wind sends fresh, salty air from the sea. Th...原创 2019-08-13 10:47:19 · 198 阅读 · 0 评论 -
Antenna Placement POJ - 3020(匈牙利算法主要是建图)
题意*–代表城市,o–代表空地 给城市安装无线网,一个无线网最多可以覆盖两座城市,问覆盖所有城市最少要用多少无线。公式:,最小路径覆盖=总节点数-最大匹配数;但是由于在建图的时候建的是无向图,所以最大匹配数=求得的最大匹配数/2;思路每个城市当做一个顶点,用a【i】【j】作为记录顶点,num记录顶点个数,然后在图里找他上下左右四个方向的点是不是城市也就是找可匹配的点建图完成...原创 2019-08-13 15:12:35 · 145 阅读 · 0 评论