自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 一般图最大匹配模板 -- 带花树

问题:对于一个图G(V,E),它的匹配M是二元组(u,v)组成的集合,其中u,v∈V,(u,v)∈E,并且M中不存在重复的点。当|M|最大的时候,我们称M为G的最大匹配。当G是一个二分图的时候,它的最大匹配可以用经典的匈牙利算法或网络流算法求解。然而当G是一个一般的图时,直接进行增广就变得不可行了,例如下面这个例子:这个问题出现的原因,就是一个一般图中会含有奇环,即一个点数为2k+1,k>0的环,而如果经过一个奇环,那么会得到两条含有同一个点的匹配边,这其实是不符合定义的。那为什么二分图可以

2020-08-24 15:20:19 171

原创 二分图 最佳匹配 KM算法模板 -- HDU 2255 奔小康赚大钱

HDU 2255 奔小康赚大钱题意:n个村民重新分配n间房子,接下来n行表示,第i个村民对第j个房子出的价格,问怎样才能使村里的机构获得最大收入。思路:KM算法模板。KM算法详解:https://www.cnblogs.com/fzl194/p/8848061.htmlhttps://www.cnblogs.com/fzl194/p/8834847.htmlcode:#include<iostream>#include<cstdio>#include<c

2020-08-19 21:42:50 245

原创 二分 + 多重匹配 / 网络流 -- POJ2112 Optimal Milking

POJ2112 Optimal Milking题意:K个产奶机,C头奶牛,每个产奶机最多可供M头奶牛使用;并告诉了产奶机、奶牛之间的两两距离Dij(0<=i,j<K+C)。如何安排使得在任何一头奶牛都有自己产奶机的条件下,奶牛到产奶机的最远距离最短?最短是多少?思路:二分答案,这里可以用二分图的多重匹配判断,也可以建图跑网络流。二分 + 多重匹配#include<iostream>#include<cstdio>#include<cstdlib

2020-08-17 16:20:36 110

原创 二分 + 多重匹配 -- POJ - 2289 Jamiemeigeren‘s Contact Groups

POJ - 2289 Jamie’s Contact Groups题意:有n个人,分为m组,每个可以被归到一些组里,但最终每个人只能归到一个组,求人数最多组的人数最少是多少。思路:二分人数,多重匹配判断。多重匹配:右边的组可以匹配多个左边的人。当每组的人数不够mid的话直接匹配就行。 若已经达到mid,那么看是是否还能寻找到增广路,若能找到就进行替换。code:#include<iostream>#include<cstdio>#include<cstdli

2020-08-16 23:06:52 395

原创 二分专题 最小可重复路径点覆盖 -- HDU1151 Air Raid

HDU1151 Air Raid题意:给你一个有向无环图,选择一些人(可以从任何点出发),问最少需要多少人可以走遍所有节点。即求出最少的路径将所有点覆盖至少一次。思路:最小可重复路径点覆盖 = 点数 - 最大匹配数,要用floyd求闭包,在跑匈牙利求最大匹配。code:#include<iostream>#include<cstdio>#include<cstdlib> using namespace std;const int maxn = 1

2020-08-16 13:47:26 252

原创 最小点覆盖 -- HDU 1054 Strategic Game

HDU 1054 Strategic Game题意:给你一个n个节点的多叉树,士兵站在节点上,问你至少要多少士兵就能监视多叉树上的所有边。思路:最小点覆盖裸题,最小点覆盖 = 二分图最大匹配。code:#include<iostream>#include<cstdio>#include<cstdlib>using namespace std;const int maxn = 1505;struct edge{ int u, v, next;} g

2020-08-15 17:06:13 123

转载 有向无环图(DAG)的最小路径覆盖(最小不相交、最小相交)

DAG的最小路径覆盖定义: 在一个有向图中,找出最少的路径,使得这些路径经过了所有的点。最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖。最小不相交路径覆盖: 每一条路径经过的顶点各不相同。如图,其最小路径覆盖数为3。即1->3>4,2,5。最小可相交路径覆盖: 每一条路径经过的顶点可以相同。如果其最小路径覆盖数为2。即1->3->4,2->3>5。特别的,每个点自己也可以称为是路径覆盖,只不过路径的长度是0。DAG的最小不相交路径覆盖:算法: 把原

2020-08-14 15:00:42 1274

转载 二分图论总结 -- 最大匹配、最小点覆盖、最少边覆盖、最大独立集

https://blog.csdn.net/qq_41730082/article/details/81456611https://blog.csdn.net/huangshuai147/article/details/51087275/

2020-08-14 13:25:58 210

原创 博弈 -- hud6850 Game

hud6850 Game题意:在直角平面坐标系中n个坐标,两个人博弈,从第一个点开始跳到其他的点上,每个点只能被经过一次,且一个点到下个点的距离要大于这个点到上一个点的距离才能跳。两人轮流跳,最后谁不能再跳了谁就输了,先手赢输出“YES",后手赢输出“NO”。思路:给每个点标号1 ~ n,n个点建完全图有n * (n - 1) / 2条边,每条边按距离权值从大到小排序,每次选择当前距离最大且未标记的边标记为真,与真边直接相邻且为标记的边标记为假边,直到所有边标记完,检查1号点所有边中是否有真边,有

2020-08-12 00:17:16 94

原创 队列尺取法 -- F Groundhog Looking Dowdy

F Groundhog Looking Dowdy题意:有n天, 每天选一件衣服,有k件衣服可供选择,每件衣服都有个权值。在n天中有m天你要外出约会,求这m天中你衣服权值的极差(衣服权值的 (最大值 - 最小值))的最小值。思路:题意要求极差最小,这意味着m天衣服的权值间隙要尽可能的小,(比如最佳的情况是连续的),那我们就开个结构体数组,记录每件衣服的权值和所属日期。按衣服权值从小到大排序。依次将数据压道队列中,当刚好压到有m个不同日期的衣服时,把该天衣服的权值 - 队首第一个不同日期的最后一件衣服

2020-08-09 22:45:51 108

原创 分解素数 + 思维 -- E Groundhog Chasing Death

E Groundhog Chasing Death题意:题目大意:给出 a , b , c , d , x , y ,求思路:分解 x, y 的公共质因数,因为分解出来的质因数总事不变,我们只需要记录每个质因数的幂次和,在快速幂求贡献,把每个质因数的贡献相乘就是答案了。但这题有个坑,就是幂次和会爆long long ,要用费马小定理降幂。费马小定理:a^(p−1)≡1(mod p),把素因子的个数对“mod-1”取模即可。具体实现:看到这题的第一想法是两层循环嵌套枚举[a, b],[c, d]

2020-08-09 20:39:49 111 1

转载 树链剖分详解 -- P3384 【模板】轻重链剖分

洛谷P3384 【模板】轻重链剖分树链剖分详解

2020-08-05 18:41:06 143

转载 线性求逆元

添加链接描述

2020-08-04 20:02:10 97

原创 整除化分块 -- B Mask Allocation

B Mask Allocation题意:正整数二元组 Legend Tuple (n, k) 是这样定义的:(1, k) 总是 Legend Tuple 。若 (n, k) 是 Legend Tuple, 那么 (n + k, k) 也是 。若 (n, k) 是 Legend Tuple, 那么 (nk, k) 也是。统计有多少个 Legend Tuple (n, k) 满足 1 ≤ n ≤ N, 1 ≤ k ≤ K, 其中 N 和 K 是不超过 1012 的整数。思路:code:#inc

2020-08-02 00:09:41 142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除