算法 二分图+最小独立集 思路 在日字形内两点连边(1),必处于不同色格子(0)。为二分图。要互不相扰,求最大独立集。 核心 最大匹配 bool dfs(int x, int y) { for (int i = 0; i < 8; i++) { int nx = x + dx[i], ny = y ...
二分图匹配 首先还是要了解二分图匹配是个什么东西 ? 分图又称作二部图,是图论中的一种 "特殊模型" 。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为 ...
分类:
其他好文 时间:
2020-04-18 13:30:20
阅读次数:
54
算法 二分图+匹配 思路 节点 列与行皆为节点 边 一个子链接一个边与一个列。 0要素 一个子不可在两列或是两行。所以连接一个行与一个趔 1要素 每行只可有一个子,列也一样。 代码 #include<cmath> #include<cstdio> #include<cstring> #include ...
算法 二分图+最小点覆盖 思路 节点 A的模式为左部节点,B的模式为右部节点 边 一个物品的A与B间连边。 2要素 及一条边中必选有一个节点 ,(要么在A加工,要么在B加工) 代码 #include <cstdio> #include <vector> #include <cstring> #inc ...
二分图的最大匹配: #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N = 510, M = 100010; int n1, n2, m; int h[N], e[M ...
分类:
其他好文 时间:
2020-04-16 20:57:04
阅读次数:
67
题意: 给出n个蚂蚁和苹果的坐标,对每个蚂蚁和苹果进行匹配(之间连一条线段),要求:任意两条线段不相交,输出一种方案。 思路: 因为三角形的两边之和大于第三边, 所有他们连线的所有线段和最小的时候线段一定不会相交, 所以这道题目就变成了二分图最小权值匹配,把任意两点间权值即为他们的距离,跑一遍KM即 ...
分类:
其他好文 时间:
2020-04-14 14:06:05
阅读次数:
62
``` #include #define f first #define s second using namespace std; typedef long long ll; const int N=300005; typedef pair P; int n,tot,t,V; map mp; ma... ...
分类:
其他好文 时间:
2020-04-12 18:18:38
阅读次数:
100
785. 判断二分图 给定一个无向图graph,当这个图为二分图时返回true。 如果我们能将一个图的节点集合分割成两个独立的子集A和B,并使图中的每一条边的两个节点一个来自A集合,一个来自B集合,我们就将这个图称为二分图。 graph将会以邻接表方式给出,graph[i]表示图中与节点i相连的所有 ...
分类:
其他好文 时间:
2020-04-11 12:50:19
阅读次数:
80
网络流 网络流问题常见的求解目标有最大流(最小割)、最小费用最大流、上下界可行流等 最小割 最大流还有一个很重要的应用,就是求最小割,以下是一些定理,其实这些和二分图匹配里面的有点相似: 最小割 = 最大流 最大点权覆盖集 = 最小割 最小点权独立集 = 总权值 - 最大点权覆盖集 最小割的定义:把 ...
分类:
其他好文 时间:
2020-04-06 13:53:04
阅读次数:
80
"Link" ) 对图进行二分图染色(染为红蓝色),那么可以得到一个结论,所有距离为3的节点的颜色都必不相同。 设$R$为红色节点的个数,$B$为蓝色节点的个数,$X=\lfloor \frac N 3\rfloor$。(这里假设$R\leq B$) 将 1~n 分类为$1\pmod 3,2\pmo ...
分类:
其他好文 时间:
2020-04-05 00:15:14
阅读次数:
84