
费用流
文章平均质量分 50
LZJ209
主页:https://zongjia.li/
展开
-
BZOJ1070 最小费用流
这道题的思路真是神,万万没想到,给出题人跪了orzorz 我们首先要想明白的是一个人修车对答案的影响是什么,假设一个人是一个技术人员倒数第一个修车,那么它对答案的影响就是修车时间,如果是倒数第二个那么对答案的影响就是2*修车时间,以此类推,所以我们将一个技术人员拆分成m个,代表一个技术人员倒数第几次修车,让这些点分别向所有车连一条容量为一,费用为t[i][j]*k的流,从起点向每一个拆分出来的点连原创 2016-12-27 08:50:59 · 357 阅读 · 0 评论 -
BZOJ4514 [Sdoi2016]数字配对
一道费用流好题,因为跑费用流的时候每次选择的都是最大的流,所以在ans刚刚要小于零的时候统计出答案即可#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<iostream>#include<iomanip>#include<ctime>#include<cmath>#include<al原创 2017-01-01 19:51:19 · 289 阅读 · 0 评论 -
【网络流24题】火星探险问题
由于这道题的输出太过庞大而且之前提供的oj也没有spj,无法验证代码正确性,所以这道题仅提供思路,就不附代码了,这道题其实和之前几道网格题是挺像的,只不过这道题有的地方有石头,有的地方没有石头,有的地方还不能走,那么我们就像之前的那样建图,把一个点拆分成两个点,每两个点之间连一条INF,费用为0的边,如果一个点有石头就多开出一条容量为1,费用为1的边,这样跑出最大费用最大流再在残量网络中找一找路径就原创 2017-01-05 19:12:40 · 990 阅读 · 0 评论 -
【网络流24题】最长k可重线段集问题(未解决)
这道题好多题解都说同上一题,可是这道题真的不一样啊(捂脸熊) 这题和上一题最大的不同就是这道题有一种线段叫做垂直x轴的线段,也就是有自环的存在,正常费用流在加流的时候也会造成死循环,但是后者可以解决,就是去掉from数组,而是把from信息加在边上,但是前者实在想不到怎么解决,希望会的人可以提出来。原创 2017-01-05 19:03:03 · 740 阅读 · 0 评论 -
【网络流24题】最长k可重区间集问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 这道题可以说是经典中的经典了,我们可以这样想,由于要求包含一个点的区间最多不超过k个,那么我们就可以只给这个序列k的流量,一旦选择了一条线段就在这条线段的区间范围内减少一点流量,这样就能保证没有任何一点上面的区间会超过k个,那么具体怎么实现呢,由于我们不清楚区间的大小,所以我们原创 2017-01-05 17:56:43 · 759 阅读 · 0 评论 -
【网络流24题】深海机器人问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 这道题其实和数字梯形的第三个规律挺像的(点和路径均可重合),唯一的差别就是这道题的路径权值只能计算一次,那怎么办呢,其实不难,我们只要将容量为INF的边的权值修改为0,在此基础上再加一条容量为1,权值为给定权值的边即可。跑一边最大费用最大流就可以啦。#include<cstdi原创 2017-01-05 17:49:40 · 414 阅读 · 0 评论 -
【网络流24题】负载平衡问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 这题的思路挺好的,就是说我们可以看得出来数值高于平均数和数值低于平均数是对立的状态,所以借助这种关系把这个环拆分成两半,左边的由源点向其链接一条容量为与平均值之差费用为0的流,右边的点则向汇点连,原环中相邻的点之间链接一条容量为INF,费用为1的流,这样跑一边最小费用最大流即可原创 2017-01-05 17:44:07 · 514 阅读 · 0 评论 -
【网络流24题】分配问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 也是一道相当裸的网络流,自己看代码吧#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<cstring>#include<string>#include<iostream>原创 2017-01-05 17:38:40 · 551 阅读 · 0 评论 -
【网络流24题】运输问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 非常裸的一道费用流,只不过要跑一遍最大流一遍最小流,所以这里就不赘述了,看代码吧。#include<cstdio>#include<cstdlib>#include<ctime>#include<cmath>#include<cstring>#include<stri原创 2017-01-05 17:37:06 · 333 阅读 · 0 评论 -
【网络流24题】数字梯形问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 这绝对是我见过最不要脸的网络流了,一道题竟然赤裸裸的让你建三个图,算了,还是耐着性子把它做完了。 我们首先要想明白的问题就是如果两条路径没有任何公共点,那么这两条路径一定不会相交,因为这道题的路径是定义在点之上的,当且仅当两条路径包含两个相同的且上下相邻的点时两条路径才有公共原创 2017-01-05 17:33:59 · 737 阅读 · 0 评论 -
【网络流24题】航空路线问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 这道题我们首先要想明白的是飞机往返飞两次其实等价于两架飞机走一次,只要两架飞机的路线除出发点和结束点以外不重合即可。那么我们只要将每个点拆分成两个点,点与点之间连一条容量为1,起始点和汇点的容量为2的流即可。个人觉得最难的还是输出路径的问题,我用的方法是重新检索图中的边查看哪原创 2017-01-05 16:47:09 · 1260 阅读 · 0 评论 -
【网络流24题】餐巾计划问题
(网络流24题大多需要spj,所以需要一个有spj的oj,本系列代码均在www.oj.swust.edu.cn测试通过) 这道题是一道很经典的网络流问题,我们可以发现餐巾的状态转移要么是在今天洗掉,要么是留到下一天洗掉,洗掉之后就变成可用的餐巾,那么我们只要把每天新产生的旧餐巾和每天需要用的新餐巾分开来看我们就能够得到一个单向的网络流的图,这样就可以完成这道题了。我们设x.a为第x天用出来的旧餐原创 2017-01-05 16:38:36 · 437 阅读 · 0 评论 -
BZOJ 1877 最小费用流
一道最小费用流裸题 为了防止一个点被选择两次,将一个点拆分为两个点,然后正常建图跑一边最小费用流#include<cstdio>#include<cstdlib>#include<cstring>#include<string>#include<iostream>#include<iomanip>#include<ctime>#include<algorithm>#include<原创 2016-12-27 08:55:19 · 320 阅读 · 0 评论 -
BZOJ 2597: [Wc2007]剪刀石头布 费用流
Description在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情况,不妨形象的称之为剪刀石头布情况。有的时候,无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生,即有多少对无序三元组(A, B, C),满足其中的一个人在比赛中赢了另一个人,另一个人赢了第三个人而第三个人又胜过了第一个人。注意这里无序的意思是说三元组中元素的顺序原创 2017-06-23 20:58:44 · 856 阅读 · 0 评论