
网络流
Ghostkkkk
这个作者很懒,什么都没留下…
展开
-
模板_Dinic算法
const int inf = 0x3f3f3f3f;const int MX = 105;const int MXE = 4 * MX * MX;struct MaxFlow { struct Edge { int v, w, nxt; } edge[MXE]; int tot, num, s, t; int head[MX]; vo原创 2017-08-16 14:34:13 · 233 阅读 · 0 评论 -
CF 277E - Binary Tree on Plane 网络流
http://codeforces.com/contest/277/problem/E题意:给你N个点,每个点有x,y 坐标。yi > yj的时候i可以向j连边,长度为距离。现在要求最小有向二叉树(边和最小)。题解:如果没有二叉树的限制,就是最小生成树裸题。现在每个点有两个出度一个入度可以考虑网络流。把每个点拆成两个点,一个用来出,一个用来入即可。代码:...原创 2018-10-20 20:22:42 · 336 阅读 · 0 评论 -
Wannafly挑战赛26 F.msc的棋盘 计数DP 最小割转换
链接:https://www.nowcoder.com/acm/contest/212/F来源:牛客网 题目描述一天,msc在家里找到了一个n×m的棋盘。这个棋盘十分奇特,每个格子最多放一个棋子,但是你并不能看见具体的棋子都放在了哪些地方,但是有一个显示屏可以显示每一行每一列有多少棋子。然而遗憾的是,由于棋盘已经放了很久,现在显示每一行有多少棋子的部分已经坏掉了,所以msc只能...原创 2018-10-17 20:20:31 · 274 阅读 · 0 评论 -
ACM-ICPC 2017 Asia Qingdao Our Journey of Xian Ends 费用流
题意:要你先从西安到上海,再从上海到青岛,然后再从青岛到上海浦东的最短路。每个城市除了上海有一个机场,只能到达这个机场和从这个机场出发一次。上海有两个机场,虹桥和浦东,可以从浦东免费到虹桥,但是要求是最后必须从虹桥到浦东一次。题解:和Our Journey of Dalian Ends(题解:https://blog.youkuaiyun.com/c6376315qqso/article/...原创 2018-10-10 20:24:34 · 277 阅读 · 0 评论 -
2017 ACM-ICPC 乌鲁木齐网络赛 Our Journey of Dalain Ends 费用流
题意:你要从西安出发先到上海,然后再到大连,每个城市只能经过一次,问最短路。题解:费用流。找一条从西安到上海的路,再找一条从大连到上海的路,就可以了。对于从x到y的一条最短路,费用流只要源点连x,汇点连y,流量为1即可。所以源点连西安容量1, 连大连容量1, 汇点连上海容量2即可,因为每个点只能经过一次,需要拆点。之所以不能西安到上海,再上海到大连,是因为有可能费用流直...原创 2018-10-10 20:06:53 · 218 阅读 · 0 评论 -
CF 1009G - Allowed Letters Hall定理
题意:给你一个字符串,你可以任意交换字符,现在要求某些下标只能是一个字符集合里面的字符,问字典序最小是多少?字符在a - f之间。题解:把所有原来的字母当成二分图左边部分, 右边部分是所有下标的字符集合, 如果字符出现在字符集合中就连边,一种方案就是一种完美匹配。现在要贪心的求字典序最小,我们只要枚举每个位置选哪个字符,然后用hall定理判断选之后还是否能构成完美匹配即可。...原创 2018-10-19 20:36:36 · 310 阅读 · 0 评论 -
CF 808F - Card Game 二分图最大点权独立集 网络流
题意:给你一些卡片,每个卡片有价值,魔法值,等级。现在要你组成一个卡组,使得卡组里面任意两个数魔法值相加不是质数,并且价值之和大于k。问你需要达到的最低等级,你可以使用等级小于等于你自己等级的卡片。题解:如果我们将加起来为素数的任意两个数连边,那么我们就是要求一个独立集,使得点权之和大于k。而且我们发现,两数相加为质数,一定是一个奇数,一个偶数(除了两个1相加)的二分图。...原创 2018-09-25 23:23:39 · 287 阅读 · 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 · 417 阅读 · 0 评论 -
CF 103E Buying Sets 二分图匹配 最大权闭合子图 Hall定理
题意:给你一些集合,集合内包含一些不同的数字。满足随机选k个集合,这k个集合的并的数字个数是大于等于k的。每个集合有一个花费。现在要找一些集合,使得集合的并的大小等于集合的个数,并且花费最小,求花费。题解:选择一个集合,如果集合里的数字个数大于1,那么肯定需要选择其他的集合来增加集合个数。可以看到,由于有n个集合,并且又满足任意k个集合数字个数大于等于k,令k=n,...原创 2018-09-12 21:54:03 · 369 阅读 · 0 评论 -
模板_zkw费用流
namespace MCMF { int S, T;//源点,汇点 int tot, n; int st, en, maxflow, mincost; bool vis[MX]; int head[MX], cur[MX], dis[MX]; int roade[MX], roadv[MX], rsz; //用于打印路径 const int原创 2017-08-16 14:41:28 · 254 阅读 · 0 评论 -
CF 1070I Privatization of Roads in Berland 网络流
http://codeforces.com/contest/1070/problem/I题意:给你一个无向图,每条边连接两个城市,现在要给每条边分配一个颜色,每个颜色不能被用超过两次, 每个城市最多被k种颜色连,问是否存在,输出方案。题解:设一个城市和deg[i]条边相连,如果deg[i] > k, 那么起码要把2 * (deg[i] - k)条边两两合并成同一颜色。对于...原创 2018-10-21 21:21:53 · 607 阅读 · 0 评论