![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
文章平均质量分 69
pbihao
这个作者很懒,什么都没留下…
展开
-
sap模板
sap模板 超短 很短原创 2016-09-05 21:41:42 · 389 阅读 · 0 评论 -
【BZOJ 2502】清理雪道 有下界网络流
有下界的最小流,刘汝佳的大白上其实讲的已经很清楚了先按照可行流的建图方法建图以后跑一遍,但是由于只是满足了可行并没有满足最小的要求所以我们再删除超级源和超级汇以及t->s的连边以后再倒着从t跑一遍退流即可。#include#include#include#define LL long long#define maxn 100021#define inf 0x3fffffff原创 2017-03-28 15:56:28 · 273 阅读 · 0 评论 -
【BZOJ 2756】[SCOI2012]奇怪的游戏 网络流+二分
很有趣的做法。首先,题目要求每一次的加数都必须加相邻的两个格子,这样我们将棋盘黑白染色就能很显然的发现每一次的加数都是将一个黑格子和一个白格子加一。继续分析:设黑格子的个数为c1,和为s1,白格子的个数为c2,和为s2,设最后棋盘所有数字为xx*c1-s1=x*c2-s2x=(s1-s2)/(c1-c2)1.c1!=c2直接网络流判断2.c1!=c2显然如果棋盘现在所有数为原创 2017-02-26 17:18:14 · 208 阅读 · 0 评论 -
【BZOJ 3931】[CQOI2015]网络吞吐量 dijkstra+最大流
很裸的题目,但是居然wa了几发,最后直接暴力替换int为long long过了,心塞。。。。。#include#include#include#include#define LL long long#define maxn 200021using namespace std;int head[1200],tot=1,n,m,q[maxn],h[maxn],vis[maxn],s,原创 2017-01-18 20:30:59 · 293 阅读 · 0 评论 -
【BZOJ 3438】小M的作物 最大权闭合子图
有两种建图方法,这里采用最大权闭合子图首先这里基于最大权闭合子图的思想,但是题目中有两种田,而网络流中的s和t有事代表正边权和负边权,所以考虑去掉一个田,我们就假设先全部将种子种在A田然后不断地将种子向B田移。闭合图基本就是这个样子:红色是种子,点权可正可负,绿色是B田的组合方式,点权为正,棕色是A田的组合方式,点权为负1.对于每一个种子,代价为b[i]-a[i]可正可原创 2017-02-14 17:18:48 · 217 阅读 · 0 评论 -
【BZOJ 1497】 [NOI2006]最大获利 最大权闭合子图
用户与s连边,边权为获利,用户向需要的基站连边边权为正无穷,基站向t连边,边权为费用,最后用总获利减去最小割即可。听说这个。。。叫做最大权闭合子图什么的,其实就是最小割啦。。。#include#include#include#define maxn 1000021#define inf 0x3fffffffusing namespace std;int head[maxn],n原创 2017-02-14 11:40:25 · 194 阅读 · 0 评论 -
【BZOJ 2561】最小生成树 最小割
拿到题再一看数据范围怎么也是思考生成树把,居然是网络流qaq。。。其实只要是换一个角度思考还是可以的,一棵树满足什么条件,至少就是任意两个节点之间有一条简单路径,而现在题目要求有不联通,那么再最优的情况下,至少应该有两个集合满足互相之间不联通,这样就能想到网络流的最小割模型了。至于网络流怎么构建模型,这条边(最小生成树为例)可能用上的情况在于:当且只有当比它小的边无法构成一颗最小生成树,即原创 2017-01-25 15:26:49 · 309 阅读 · 0 评论 -
[BZOJ 2055]80人环游世界 有上下界网络流
由于每一个节点都具体规定了人数,所以上下界一样,然后就像可行流一样建图后跑最小费用最大流就好了.#include#include#include#include#define inf 0x3fffffff#define maxn 205#define maxm 500021using namespace std;int head[maxn],n,m,in[maxn],tot,a原创 2017-02-28 09:39:57 · 276 阅读 · 0 评论 -
【BZOJ 1475】方格取数 最大点权独立集
首先可以很明确的是原图一定是二分图(i+j为奇数的和偶数的格子没有边),先摆出结论:最大独立点集=sum-最小割原因:我们这样建图,s向所有i+j为奇数的格子连边,点权是格子上面的数大小,i+j为偶数的格子向t连边边权也是格子上的权值,然后相邻的格子之间连边,边权为inf。这样的话每割掉一条边(连向s或者t的)就相当于不选这个节点,点之间的边权为inf,边两边连接的点有你无我,有我无你,也就意原创 2017-01-17 21:55:47 · 366 阅读 · 0 评论 -
【BZOJ 1391】[Ceoi2008]order 最小割
建图s向每个任务建边,容量为收益,任务向机器建边,容量为租用机器花费,机器向汇点建边,容量为购买机器的费用,然后跑最小割,每割掉一条边就相当于放弃这个收益或者选择这个花销,原创 2017-01-17 21:21:34 · 231 阅读 · 0 评论 -
【bzoj1458】士兵占领 最大流
又是反过来考虑。。。。。直接计算会很复杂(毕竟每一行和每一列都会有一定的限制条件,很难同时满足),那么我们放过来思考,先把所有的各自都放上士兵一共n*m-k个,然后考虑拿走一部分士兵。源点向每行建边,边权是:m-L[i]-这一行的障碍格子数目,即是能够拿走的士兵数目,然后列向汇点建边,同理,每一个格子(可拿走)使得所在行和列连上边权为1得边,最后ans减去最大流就好了#include原创 2017-01-15 21:57:58 · 204 阅读 · 0 评论 -
【BZOJ 1585】 [Usaco2009 Mar]Earthquake Damage 2 地震伤害 最小割
然后由于是求最少破坏数,还是比较好想得最小割模型,首先1号节点最为汇点,然后确定源点,因为题目是要求我们将给出的节点和1号节点分开,也就是要求出一条最小割将给出的点和1号节点隔开就好了,所以建立一个源点和所有给出的点连边容量为INF保证它不会被割掉就好了,然后拆点,给出的点一定是可行的所以边权为INF其他的为1,特别注意1号节点边权也是INF或者直接令1的入点为汇点,没了。#include#原创 2016-12-28 19:14:10 · 381 阅读 · 0 评论 -
【BZOJ 1070】[SCOI2007]修车 费用流
先挖一个坑在这里,等什么时候心情好了再去填,zkw网络流:http://www.artofproblemsolving.com/community/c1368h1020435首先源点和每一个车建边,然后拆人的点,每个人拆成他本身倒数第i个修车的点,将车和人建边的时候费用就是k*a[i][j]也就是当前修车时间加上对后面修车的状态已影响就好了。最后向汇点建边,还用的是最简单的费用流,原创 2016-12-18 16:13:58 · 212 阅读 · 0 评论 -
【East!_XVI】九尾妖狐 最小割
题目:http://hzwer.com/6541.html其实关于最小割来划分集合的问题我在善意的投票里已经提到过了,这一道题也是一样的,只是一开始被10000的数据范围给吓到了,但其实仔细分析虽然点多,但是层数是非常小的,所以即使是跑网络流依旧不会太过复杂首先我们将每一个点和物理以及魔法连边,边权就是能增加的量,但是如果同时两个技能都是魔法还会有更多的增量,于是再建立两个个新的节点,原创 2016-10-30 20:34:07 · 397 阅读 · 0 评论 -
【poj 1273】Drainage Ditches 最大流dinic模板
唯一的坑点就是居然是多组数据,wa了一次以前都是写的sap但是后来看了黄学长的dinic模板,感觉很快就学(狼爪兔子拿到毒瘤题我的sap狂T不止,最后还是向恶势力低头,用了对偶图跑spfa,但是人家直接硬刚dinic,而且。。。。比我的spfa块),但是速度上其实和图有关,例如那道黄学长网站上的【East!_XVI】九尾妖狐 glk的sap比我快了0.1秒(为什么受伤的都是我)SAP模板(原创 2016-10-30 16:49:55 · 199 阅读 · 0 评论 -
【bzoj 1934】[Shoi2007]Vote 善意的投票 最小割
【bzoj 1934】[Shoi2007]Vote 善意的投票 最小割原创 2016-10-21 17:25:44 · 402 阅读 · 0 评论 -
【BZOJ 2400】Spoj 839 Optimal Marks 最小割
很有意思的一道题,看到网上有先跑最小割然后dfs的做法,但是还看到一个比较有趣的建图方法。首先对于题目来说,显然可以因为每一个位之间都不会相互影响所以可以按位处理,枚举每一位然后把每一个点划分为0或者1,这样一来就相当于把每一个元素划分为两个集合,并且要求代价最小,这样可以想到最小割。然后对于这一道题目要求在保证边权最小的情况下点权和最小,这就相当于要在保证第一条件最优下次要条件也最优,这原创 2017-03-31 09:21:00 · 388 阅读 · 0 评论