![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络流
Todobe
two funny foolish men
展开
-
费用流 模板【SDOI2009】bzoj1877 晨跑
费用流:在网络流的边上加上一个费用值,在保证最大流的基础上,使这个费用最小。 实现方法:把dinic的bfs改成用费用跑spfa,dfs过程改成单一路径修改。模板代码如下(变量解释在代码后):bool spfa(){ queue<int> V; memset(f,0x1f,sizeof(f)); memset(road,0,sizeof(road)); V.pus原创 2016-12-28 21:49:07 · 388 阅读 · 0 评论 -
费用流 【SDOI2016】 bzoj4514 数字配对
题目大意: 有 n 种数字,第 i 种数字是 ai、有 bi 个,权值是 ci。 若两个数字 ai、aj 满足,ai 是 aj 的倍数,且 ai/aj 是一个质数, 那么这两个数字可以配对,并获得 ci×cj 的价值。 一个数字只能参与一次配对,可以不参与配对。 在获得的价值总和不小于 0 的前提下,求最多进行多少次配对。 (题目很清晰啊,就不转述了)题目分析: 如果一个数ai能整除a原创 2017-01-02 18:45:29 · 335 阅读 · 0 评论 -
网络流 模板【Usaco2007 Open】bzoj1711 Dining吃饭
网络流 网络流通常有一个源点,一个汇点,和其他若干点,这些点之间有若干条有向边,每条边上有一个负载上限,称为容量。题目通常要求我们求出在所有边容量允许的范围内,从源点到汇点流量的最大值。 一般情况下,网络流都不会很难写,网络流题目大多数都难在建图上。dinic算法: step1: bfs给所有有可行流的点标号,建立层次网络,源点标为1,将所有能标的点标完或标到汇点结束; step2: 如原创 2016-12-28 19:27:28 · 431 阅读 · 0 评论 -
最小割模型——最大权闭合子图 【NOI2006】bzoj1497 最大获利
定理:最小割=最大流 最大权闭合子图: 有一些点,每一个点有一个权值,可正可负。对于某个点i,如果你选择了i,就必须选择j。现在让你选择一些点,满足上述条件,并且是权值最大。题目大意: 建立中转站i需要费用pi,如果建立了中转站ai和bi就可以获得收益ci,求最大收益。题目分析: 转化成最大权闭合子图的模型: 我们把ci具体化为一排节点,则每个点都具有ci的正权值; 另一派点代表中转站,原创 2016-12-28 19:47:52 · 398 阅读 · 0 评论 -
费用流 【bzoj1283】序列
题目大意: 给出一个长度为 的正整数序列Ci,求一个子序列,使得原序列中任意长度为M的子串中被选出的元素不超过K(K,M<=100) 个,并且选出的元素之和最大。题目分析: 用容量为k,费用为0的边将原序列连成一条链,然后再把第i个点和第i+m个点连一条容量为1,费用为ci的边,跑最大费用最大流即可。代码如下:#include<cstdio>#include<cstdlib>#include原创 2016-12-29 08:16:19 · 448 阅读 · 0 评论 -
bzoj1391 [Ceoi2008]order 网络流——最大权闭合子图
题目描述: 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成。 现在给出这些参数,求最大利润n<=1200,m<=1200。题目分析: 最大权闭合子图模型。 从源点向工作连容量为收益的边。 从机器向汇点连容量为购买的边。 从工作向机器连容量为租用的边。 用总收益减去最小割(即最大流)即可。这题不仅卡时,原创 2017-06-20 22:00:01 · 536 阅读 · 0 评论 -
bzoj1797 [Ahoi2009]Mincut 最小割 网络流+强连通分量
题目大意: 给一张图,S和T。 对于每一条边,问这条边是否可以在最小割中,是否一定在最小割中。题目分析: http://hzwer.com/3217.html 先跑一边网络流,然后在残量网络中进行强连通分量缩点。对于第一问,如果u和v不在一个强连通分量中,则这条边可以在最小割中。 对于第二问,如果u和S在一个强连通分量中,并且v和T在一个强连通分量中,在这条边必须在最小割中。代码如下:#i原创 2017-06-21 15:10:15 · 536 阅读 · 0 评论 -
UOJ#77 bzoj3218 a + b Problem 可持久化线段树优化建图+网络流
题目大意: 有n个点,如果第i点染黑得到bi的收益,染白得wi的收益。 每个点有属性ai,li,ri,pi。 如果第i个点染成黑色,并且存在一个点j满足 第j个点染白色,j< i 且 li<=aj<=ri 则i为奇怪的点,付出pi的代价。 求总收益最大。 n<=1e5题目分析: 可以看出一个网络流的模型。 从源点向每个点连bi,每个点向汇点连wi。 对于第i个点,新建一个结点,从原创 2017-06-30 17:29:32 · 732 阅读 · 0 评论