随笔分类 -  图论算法-网络流

摘要:[AHOI2014]支线剧情(有上下界的网络流) 题面 JYY现在所玩的RPG游戏中,一共有N个剧情点,由1到N编号,第i个剧情点可以根据JYY的不同的选择,而经过不同的支线剧情,前往Ki种不同的新的剧情点。当然如果为0,则说明i号剧情点是游戏的一个结局了。 JYY观看一个支线剧情需要一定的时间。J 阅读全文
posted @ 2020-07-30 15:40 birchtree 阅读(269) 评论(0) 推荐(0) 编辑
摘要:[SDOI2014]LIS(最小割) 题面 给定序列A,序列中的每一项Ai有删除代价Bi和附加属性Ci。请删除若干项,使得A的最长上升子序列长度减少至少1,且付出的代价之和最小,并输出方案。 如果有多种方案,请输出将删去项的附加属性排序之后,字典序最小的一种。 n700 分析 先 阅读全文
posted @ 2020-07-30 15:16 birchtree 阅读(228) 评论(1) 推荐(0) 编辑
摘要:[BZOJ2561]最小生成树(最小割) 题面 给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出 阅读全文
posted @ 2020-07-30 14:30 birchtree 阅读(127) 评论(0) 推荐(0) 编辑
摘要:[ZJOI2010]网络扩容(费用流) 题面 给定一张有向图,每条边都有一个容量c和一个扩容费用w。这里扩容费用是指将容量扩大1所需的费用。求: 在不扩容的情况下,1n的最大流; 将1n的最大流增加k所需的最小扩容费用。 分析 先求出原图的最大流,大小设为f阅读全文
posted @ 2020-07-28 09:59 birchtree 阅读(154) 评论(0) 推荐(0) 编辑
摘要:网络流常见建图套路总结(重制版) 前置知识 网络流的基本算法:Dinic最大流,EK+SPFA求费用流 最小割,最小割最大流定理 二分图判定,匹配,相关性质 由于本文以建图方法为主,不涉及网络流算法的具体实现,以上前置知识一边看一边学也可以 最大流 二分图最大匹配与多重匹配 二分图匹配:给定一个二分 阅读全文
posted @ 2020-05-18 19:36 birchtree 阅读(5262) 评论(8) 推荐(9) 编辑
摘要:[BZOJ2127]happiness(最小割) 题面 高一一班的座位表是个n m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友。这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文科或者理科,那么他们又将收获一些喜悦值。作为计算机竞赛 阅读全文
posted @ 2020-05-18 10:15 birchtree 阅读(363) 评论(0) 推荐(0) 编辑
摘要:[网络流24题]餐巾计划问题(费用流) 题面 一个餐厅在相继的 N天里,每天需用的餐巾数不尽相同。假设第 i天需要ri块餐巾( i=1,2,...,N)。餐厅可以购买新的餐巾,每块餐巾的费用为 p 分;或者把旧餐巾送到快洗部,洗一块需 m 天,其费用为 f 分;或者送到慢洗部,洗一块需 n 阅读全文
posted @ 2020-05-13 22:30 birchtree 阅读(332) 评论(0) 推荐(1) 编辑
摘要:[BZOJ1001]狼抓兔子(平面图最小割) 题面 略 分析 我们发现,如果把 每个平面区域看成一个点 ,交界处的边看成连接两个区域的边,再加两个点表示分割线的起点和终点、那么原图的一个割就对应新图的一条路径。如图上S (1) (4) (9) (10) T就构成了一个分割线,割断的边权为5,6,3, 阅读全文
posted @ 2020-05-13 20:32 birchtree 阅读(312) 评论(0) 推荐(0) 编辑
摘要:[AT5203][AGC038F]Two Permutations(网络流).md 题面 给出两个排列P,Q.要求构造两个排列A,B. 要求:Ai要么等于i,要么等于Pi;Bi要么等于i,要么等于Qi 最大化AiBi的下标i数量 分析 阅读全文
posted @ 2020-04-27 13:15 birchtree 阅读(411) 评论(0) 推荐(0) 编辑
摘要:[POJ1149][SPOJ4063]PIGS(最大流) 题面 略 分析 很妙的网络流建图套路。 注意到我们只能交换客户打开过的猪圈里的猪。那么相当于可以通过顾客来中转猪。体现到建图上就是: 我们把每一个顾客看成一个点。对于每个猪圈,从原点向打开它的第一个顾客连边,容量为初始猪数量ai,表示最 阅读全文
posted @ 2020-03-29 20:13 birchtree 阅读(119) 评论(0) 推荐(0) 编辑
摘要:从多种角度看[BZOJ 1061] [NOI 2008]志愿者招募(费用流) 题面 申奥成功后,布布经过不懈努力,终于成为奥组委下属公司人力资源部门的主管。布布刚上任就遇到了一个难题:为即将启动的奥运新项目招募一批短期志愿者。经过估算,这个项目需要N 天才能完成,其中第i 天至少需要Ai 个人。 布 阅读全文
posted @ 2019-12-04 13:31 birchtree 阅读(382) 评论(0) 推荐(0) 编辑
摘要:最小割树(Gomory Hu Tree) 前置知识 Gomory Hu Tree是用来解决无向图最小割的问题的,所以我们需要了解无向图最小割的定义 和有向图类似,无向图上两点(x,y)的割定义为一个边集E,满足去掉该边集后x,y不联通。最小割即为所有的割中权值之和最小的割 通过这条割我们把点集划为两 阅读全文
posted @ 2019-04-24 11:59 birchtree 阅读(2726) 评论(1) 推荐(0) 编辑
摘要:分析 "网络流24题总结" 维护三个状态(x,y,k)表示当前坐标(x,y)和剩余流量k,dist(x,y,k)表示当前状态下的最小花费 到了每一个点分类讨论: 1.遇到油库,必须加满,以加满的状态继续转移 2.没有油库,设一个油库,并把油加满 3.没有油库,继续走 代码 最短路: cpp incl 阅读全文
posted @ 2019-03-26 19:35 birchtree 阅读(651) 评论(0) 推荐(0) 编辑
摘要:分析 "网络流24题总结" 这题直接状压BFS也可以,不过可以把BFS改成SPFA,进一步优化 显然要维护三个状态:s,x,y,分别表示钥匙状态s(用一个二进制表示,第i位为1表示当前有第i个钥匙),和当前的x,y坐标,以这三个状态来分层 那么设dist(s,x,y)表示到达当前状态的最短时间 转移 阅读全文
posted @ 2019-03-26 19:26 birchtree 阅读(214) 评论(0) 推荐(0) 编辑
摘要:分析 裸的最短路: 把错误集合状压成一个二进制,第i为为1表示有第i个错误 把这个状态x作为图上的节点编号,dist[x]表示转移到状态x需要的时间 显然初始状态为dist[2n1]最终的答案为dist[0] 转移的时候枚举每一个补丁,通过位运算判断补丁i是否能修复当前状态 代码 cpp i 阅读全文
posted @ 2019-03-26 19:21 birchtree 阅读(261) 评论(0) 推荐(0) 编辑
摘要:题面 Nick最近在玩一款很好玩的游戏,游戏规则是这样的: 有一个n m的地图,地图上的每一个位置要么是空地,要么是炮塔,要么是一些BETA狗,Nick需要操纵炮塔攻击BETA狗们。 攻击方法是:对于每个炮塔,游戏系统已经给出它可以瞄准的方向(上下左右其中一个),Nick需要选择它的攻击位置,每一个 阅读全文
posted @ 2019-03-20 21:46 birchtree 阅读(384) 评论(0) 推荐(0) 编辑
摘要:分析 此题跟“方格染色”一样 先对棋盘黑白染色(这是常见套路),我们发现,如果选了一个黑点,那相邻的白点就不能选,反之同理 出现了冲突关系,考虑最大权闭合子图 把黑点看成正权点,白点看成负权点,黑点向能走到的白点连边,跑最大权闭合子图即可 代码 cpp include include include 阅读全文
posted @ 2019-02-25 15:00 birchtree 阅读(306) 评论(0) 推荐(0) 编辑
摘要:分析 先对棋盘黑白染色(这是常见套路),我们发现,如果选了一个黑点,那相邻的白点就不能选,反之同理 出现了冲突关系,考虑最大权闭合子图 把黑点看成正权点,白点看成负权点,黑点向相邻白点连边,跑最大权闭合子图即可 代码 cpp include include include include defin 阅读全文
posted @ 2019-02-25 14:53 birchtree 阅读(314) 评论(0) 推荐(0) 编辑
摘要:分析 最大权闭合子图模板题 把实验获得的收益看成正权点,仪器费用看成负权点,每个实验向所需要的仪器连边 跑最大权闭合子图即可 详见 "https://www.cnblogs.com/birchtree/p/10304793.html" 代码 cpp include include include i 阅读全文
posted @ 2019-02-25 14:50 birchtree 阅读(435) 评论(0) 推荐(0) 编辑
摘要:[luogu 2754] 家园 "传送门" 分层图上的最大流.按时间分层 建图方法: 时间t不断增加,每一天: (1)从源点向每一天的地球连容量为INF的边,流过该点相当于当天从地球出发 (2)从每一天的月亮向汇点连容量为INF的边,流过该点相当于当天到达月球 (3)从上一天的每一个中转站向当天的对 阅读全文
posted @ 2019-02-05 16:57 birchtree 阅读(317) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示