随笔分类 -  网络流

摘要:竞赛图三元环个数为 $\binom{n}{3} \sum\limits_{i=1}^n \binom{deg_i}{2}$ 即为最小化 $\sum\limits_{i=1}^n \binom{deg_i}{2}$ 考虑费用流 给每个比赛新建一个点 $C_{i,j}$,若胜负关系已确定,则 $C_{i 阅读全文
posted @ 2020-03-13 16:08 Mrzdtz220 阅读(109) 评论(0) 推荐(0)
摘要:二分时间转化为判定性问题 考虑网络流 $S$ 向第 $i$ 个巫妖连一条容量为 $\dfrac{mid}{time_i}+1$ 的边 第 $j$ 个精灵向 $T$ 连一条容量为 $1$ 的边 预处理出每个巫妖能否攻击每个精灵 通过判断圆和线段是否有交点即可 判断方法为圆心找到离线段的最近距离和半径比 阅读全文
posted @ 2020-03-11 12:19 Mrzdtz220 阅读(110) 评论(0) 推荐(0)
摘要:要求把图分割成若干条除了起点和终点之外都不相交的路径 拆点最小费用最大流解决即可 阅读全文
posted @ 2020-03-03 17:35 Mrzdtz220 阅读(75) 评论(0) 推荐(0)
摘要:每条边流量至少为 $1$ 直接套用有源汇上下界最小费用可行流 阅读全文
posted @ 2020-02-25 23:56 Mrzdtz220 阅读(94) 评论(0) 推荐(0)
摘要:无向图的最大团可以转化为补图的最大独立集,而对于B的补图是一个二分图,二分图的最大独立集等于顶点数减去最小点覆盖,而最小点覆盖又等于最大匹配,那么就是求B图的最大匹配 而A图要求选一个奇数一个偶数,那么最多就只能选两个 暴力枚举选哪些,再在B图上跑匈牙利,用时间戳优化,就不用每次都memset了 阅读全文
posted @ 2020-02-23 22:26 Mrzdtz220 阅读(81) 评论(0) 推荐(0)
摘要:太久不写网络流/费用流已经忘得差不多了。 把每个技术人员拆成 $n$ 个点,表示倒数第 $i$ 个去修某辆车 那么在它之后修的车就得加上它的时间,所以费用就是 $i w$ 所以就是每个顾客 $x$ 向 $(i, j)$(第 $j$ 个技术人员倒数第 $i$ 个修某辆车) 连一条容量为 $1$,费用为 阅读全文
posted @ 2020-02-17 20:24 Mrzdtz220 阅读(77) 评论(0) 推荐(0)
摘要:网络流,源点向狼连容量为 $4$ 的边,羊向汇点连容量为 $4$ 的边,然后每个格子都向四周连容量为 $1$ 的边,最小割即为答案。 #include <bits/stdc++.h> const int N = 8e4 + 7; struct E { int v, ne, f; } e[N]; in 阅读全文
posted @ 2020-01-27 22:16 Mrzdtz220 阅读(138) 评论(0) 推荐(0)
摘要:做法一:直接dinic跑 做法二:平面图最小割转对偶图最短路,左下外区域为起点,右上外区域为终点,一条边连接两个区域,把区域看成点,就变成了最短路问题。 #include <bits/stdc++.h> namespace IO { char buf[1 << 21], buf2[1 << 21], 阅读全文
posted @ 2020-01-25 22:19 Mrzdtz220 阅读(127) 评论(0) 推荐(0)
摘要:就是二分图匹配,直接匈牙利即可。 #include <bits/stdc++.h> const int N = 220; bool used[N]; int hascow[N], n, link[N][N]; bool find(int x) { for (int i = 1; i <= n; i+ 阅读全文
posted @ 2020-01-25 20:45 Mrzdtz220 阅读(85) 评论(0) 推荐(0)
摘要:费用流。把每个方格拆成 $T$ 个点,$t$ 时刻一个方格向周围四个方格的 $t + 1$ 的点连一条容量为 $1$ 费用为 $0$ 的边,向自身的 $t + 1$ 连一条容量为 $1$ 费用为该方格最大幸福值的边。源点向方格为 'S' 的0时刻连一条容量为 $1$ 费用为 $0$ 的边。所有点的 阅读全文
posted @ 2019-10-14 21:52 Mrzdtz220 阅读(143) 评论(0) 推荐(0)
摘要:传送门 Description 给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩大1所需的费用。 求: 1、在不扩容的情况下,1到N的最大流; 2、将1到N的最大流增加K所需的最小扩容费用。 给定一张有向图,每条边都有一个容量C和一个扩容费用W。这里扩容费用是指将容量扩 阅读全文
posted @ 2019-05-28 13:52 Mrzdtz220 阅读(198) 评论(0) 推荐(0)
摘要:传送门 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:( 阅读全文
posted @ 2019-05-28 10:39 Mrzdtz220 阅读(189) 评论(0) 推荐(0)
摘要:传送门 题意:求无向图割集中平均边权最小的集合。 论文《最小割模型在信息学竞赛中的应用》原题。 分数规划。每一条边取上的代价为1。 #include <bits/stdc++.h> using namespace std; inline int read() { int x = 0, f = 1; 阅读全文
posted @ 2019-05-27 10:20 Mrzdtz220 阅读(211) 评论(0) 推荐(0)
摘要:传送门 要求的即为,在费用不小于0的情况下的最大匹配数。 可转化为费用不大于0(负费用)的最大匹配。 在每次spfa得到的cost的时候就判断一下加上是否大于0了,如果大于0就可以直接加上答案并返回了。 #include <bits/stdc++.h> #define ll long long us 阅读全文
posted @ 2019-05-27 10:03 Mrzdtz220 阅读(134) 评论(0) 推荐(0)
摘要:传送门 论文《最小割模型在信息学竞赛中的应用》原题 二进制不同位上互不影响,那么就按位跑网络流 每一位上,确定的点值为1的与S连一条容量为INF的有向边。为0的与T连一条容量为INF的有向边。 其他的按给定的无向图建边,容量为1。 统计答案是从源点能到达的点(流量未达到容量)即为该位上为1的点。 需 阅读全文
posted @ 2019-05-27 09:59 Mrzdtz220 阅读(182) 评论(0) 推荐(0)
摘要:题意:n个插座,m个设备及其插头类型,k种转换器,没有转换器的情况下插头只能插到类型名称相同的插座中,问最少剩几个不匹配的设备 lrj紫书里面讲得挺好的。 先跑一遍floyd,看看插头类型a能否转换为b 然后构造网络 源点为0, 汇点为n + m + 1,源点连插头 容量为1,插座连汇点,容量为1 阅读全文
posted @ 2019-05-01 11:27 Mrzdtz220 阅读(200) 评论(0) 推荐(0)