本文中 N为点数,M为边数; EK: (brute_force) ; 每次bfs暴力找到一条增广路,更新流量,代码如下 : 时间复杂度:O(NM²); 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 struct node{ 5 int ne ...
分类:
其他好文 时间:
2018-10-16 19:26:55
阅读次数:
177
数组开小导致TTTTTLE…… 是分数规划,设sm为所有格子价值和,二分出mid之后,用最小割来判断,也就是判断sm dinic() =0 这个最小割比较像最大权闭合子图,建图是s像所有点连流量为格子价值的边(相当于最大权闭合子图中的正权点),然后考虑边缘,两个相邻的格子,如果一个选一个不选那么中间 ...
分类:
其他好文 时间:
2018-10-16 10:15:00
阅读次数:
193
做了这么长时间的二分图, 终于发现一个只能用 Hungary 做的题了. 一眼二分图, 但是建模非常巧妙. 一开始的想法无非就是把两个属性当做二分图的两边, 但是发现这样似乎不好处理选其中一个的情况. 其实这个应该把属性放到左边, 编号放到右边匹配就ok. 因为编号必须连续的缘故, dinic 此处 ...
分类:
其他好文 时间:
2018-10-11 19:01:40
阅读次数:
140
注:本人只是一个萌新,有一些地方的用语会不太专业(大佬:是十分不专业),我不会用什么技术用语,这些文章对那些跟我一样的萌新会比较适用! 最大流: 原题地址 最大流我讲的是我自己对dinic算法的一些思想,希望对你会有用! 我记网络流靠三个关键字: 1.找最短路径 将流量流向终点,且损害最少的边,这是 ...
分类:
其他好文 时间:
2018-09-24 11:17:54
阅读次数:
221
传送门 显然是网络流最小割 朴素的dinic会被卡 但是如果加上玄学优化就可以过了 主要是讲另一个方法 可以发现每条路径是不会交错的 对于样例的图,我们如果从右上随便走出发一条线到左下 把线经过的边全部割掉,就是一种可行的方案 所以可以把每个平面看成点,点之间的边就是平面之间的公共边 只要我们从右上 ...
分类:
其他好文 时间:
2018-09-20 19:17:12
阅读次数:
142
题意: 二分图 有k条边,我们去选择其中的几条 每选中一条那么此条边的u 和 v的度数就+1,最后使得所有点的度数都在[l, r]这个区间内 , 这就相当于 边的入度+1,出度+1,最后使流量平衡 解析: 这是一个无源汇有上下界可行流 先添加源点和汇点 超级源超级汇 跑边dinic当前弧优化的板子 ...
分类:
其他好文 时间:
2018-09-09 12:03:01
阅读次数:
210
P3376 【模板】网络最大流(luogu) 最大流的dinic算法模板(采取了多种优化) 优化 | 时间 | inline+当前弧+炸点+多路增广 |174ms no 当前弧 | 175ms no 炸点 | 249 自己对最大流算法的理解: 通过bfs对剩余图进行分层,剩余图中有流量的边(cap ...
分类:
其他好文 时间:
2018-09-01 22:03:03
阅读次数:
171
传送门 首先最大流等于最小割,那么可以转化为最小割树来做(不知道什么是最小割树的可以看看这题->这里) 具体的做法似乎是$hash[i][j]$表示最小割为$i$时点$j$是否与$S$连通 然后据Claris大爷说这题卡dinic,只能用EK 顺便吐槽一句,Claris大爷的代码真的不能看…… ...
分类:
其他好文 时间:
2018-09-01 20:31:14
阅读次数:
164