图论
Ghostkkkk
这个作者很懒,什么都没留下…
展开
-
HDU 6311 Cover 多条欧拉回路
题意:给你一个无向图。求最少多少条路径,可以完全覆盖所有边,并且没有重复题解:假如一条路径覆盖所有边, 此时即为欧拉路径。现在不是欧拉图,需要多少条路径同理。欧拉路径要求仅两个点度数为奇数。现在我们统计奇数点的个数d,答案即为max(d/2, 1)。我们可以把每两个奇数点再连一条边,此时即会构成一条欧拉回路。删除这些边后会构成d/2条路径。跑一边欧拉回路算法找出路径,然后分段输...原创 2018-07-27 16:15:47 · 301 阅读 · 0 评论 -
HDU - 6331 Walking Plan 矩阵乘法 最短路
题意:给你n个点m条边的有向图。有Q次询问,每次问你从s到t至少经过k条边的最短距离。n <= 50, m<= 10000, q<= 100000, k<= 10000.题解:设f[i][j][k]为从i到j恰好经过了k条边的最小距离。f[k][i][j] = min( f[x][i][t] + f[k - x][t][j] )。注意到这个转移类似矩...原创 2018-07-31 22:06:05 · 348 阅读 · 0 评论 -
CF 103E Buying Sets 二分图匹配 最大权闭合子图 Hall定理
题意:给你一些集合,集合内包含一些不同的数字。满足随机选k个集合,这k个集合的并的数字个数是大于等于k的。每个集合有一个花费。现在要找一些集合,使得集合的并的大小等于集合的个数,并且花费最小,求花费。题解:选择一个集合,如果集合里的数字个数大于1,那么肯定需要选择其他的集合来增加集合个数。可以看到,由于有n个集合,并且又满足任意k个集合数字个数大于等于k,令k=n,...原创 2018-09-12 21:54:03 · 331 阅读 · 0 评论 -
CF 875F - Royal Questions 图论 想法建图 最大基环树
题意:有n个王子和m个公主,每个公主有两个结婚候选人,还有嫁妆。现在要选择结婚方案使得王子们获得的嫁妆最大。题解:将每个公主的两个候选人连边,那么使得每个王子的入度不大于1即是一种合法的方案。可以发现最后要么是基环树,要么是树。那么我们利用最大生成树算法同样的思想即可求出最大嫁妆。代码:#include <cstdio>#include <iost...原创 2018-09-10 17:13:33 · 295 阅读 · 0 评论 -
CF 976F - Minimal k-covering 最大流 残余网络 逆向思维
题意:给你一个二分图。问最少保留哪些边,使得每个点的度数至少为k。k从0到mindegree。1 <= n1, n2 <= 2000. m <= 2000题解:网络流。考虑逆向思考。我们用源点连第一部分的点,汇点连第二部分的点。对于某一个k,这些边的容量是点的度数-k,代表不选的原边。然后第一部分的点用原边连第二部分的点,容量为1。因为求的...原创 2018-10-01 14:46:34 · 388 阅读 · 0 评论 -
CF 808F - Card Game 二分图最大点权独立集 网络流
题意:给你一些卡片,每个卡片有价值,魔法值,等级。现在要你组成一个卡组,使得卡组里面任意两个数魔法值相加不是质数,并且价值之和大于k。问你需要达到的最低等级,你可以使用等级小于等于你自己等级的卡片。题解:如果我们将加起来为素数的任意两个数连边,那么我们就是要求一个独立集,使得点权之和大于k。而且我们发现,两数相加为质数,一定是一个奇数,一个偶数(除了两个1相加)的二分图。...原创 2018-09-25 23:23:39 · 263 阅读 · 0 评论 -
CF 741C - Arpa’s overnight party and Mehrdad’s silent entering 构造 二分图
题意:给你n对情侣中男孩和女孩的位置,问是否能构造出一种01染色方法使得每对男女颜色不同,并且每三个相邻的人当中两个颜色不同,1和2 * n是相邻的。题解:问题的关键在于想到每两个连一条边,情侣之间也连边。然后会发现这样一定可行。为什么呢?每个人会连出两条边,一条是相邻两个连边,一条连情侣。对于所有人都会有这两种边,那么假设构成奇环,环中只有奇数条边,不可能存在这种情况,因为两...原创 2018-10-17 00:27:09 · 189 阅读 · 0 评论 -
2017 ACM-ICPC 乌鲁木齐网络赛 Our Journey of Dalain Ends 费用流
题意:你要从西安出发先到上海,然后再到大连,每个城市只能经过一次,问最短路。题解:费用流。找一条从西安到上海的路,再找一条从大连到上海的路,就可以了。对于从x到y的一条最短路,费用流只要源点连x,汇点连y,流量为1即可。所以源点连西安容量1, 连大连容量1, 汇点连上海容量2即可,因为每个点只能经过一次,需要拆点。之所以不能西安到上海,再上海到大连,是因为有可能费用流直...原创 2018-10-10 20:06:53 · 190 阅读 · 0 评论 -
ACM-ICPC 2017 Asia Qingdao Our Journey of Xian Ends 费用流
题意:要你先从西安到上海,再从上海到青岛,然后再从青岛到上海浦东的最短路。每个城市除了上海有一个机场,只能到达这个机场和从这个机场出发一次。上海有两个机场,虹桥和浦东,可以从浦东免费到虹桥,但是要求是最后必须从虹桥到浦东一次。题解:和Our Journey of Dalian Ends(题解:https://blog.csdn.net/c6376315qqso/article/...原创 2018-10-10 20:24:34 · 237 阅读 · 0 评论