网络流
文章平均质量分 86
WA是一笔财富
这个作者很懒,什么都没留下…
展开
-
Marriage Match IV HDU3416 spfa+isap
传送门:HDU3416这个题值得纪念啊,本来是最短路专题训练里的题,结果掺杂了最大流,我就因此学了好几天的网络流。。题意:给定两个点,求两个点之间的最短路径,但是每条边只能走一次,问有几条最短路。学了最大流以后感觉这就是个最短路水题+最大流水题啊。。但是两个水题加起来就变成了难题。。题解:输入变得时候建两边图,一个正向,一个反向,然后spfa求起点到其他点的最短路和终点到其他点的最原创 2016-12-16 19:53:55 · 306 阅读 · 0 评论 -
Sunscreen POJ - 3614 最大流||贪心
传送门:POJ3614题意:有C个奶牛去晒太阳 (1 给出L种防晒霜以及每种的数量和固定的阳光强度。每个奶牛只能抹一瓶防晒霜,最后问能够晒太阳的奶牛有几个。思路:最近一直在刷网络流思维就被局限住了。。看完觉得是分配型问题,最大流模板题,就没多想写了一发,过后看题解发现贪心就可解。。最大流代码://ISAP int#include #include #include原创 2017-06-19 00:04:52 · 313 阅读 · 0 评论 -
Kejin Game UVALive - 7264 拆点+最小割
传送门:UVALive - 7264题意:给定一颗类似于dnf、lol点天赋时候的天赋(技能)树,技能获得的前提是他的前置技能都获得了,作为一个RMB玩家,你有特权:1.直接花费一定数量的钱获得某个技能。2.花费一定数量的钱将一个技能的某一个前置关系取消,即将前置技能到该技能的边消除(但不会获得该前置技能)。如果正常学习技能的话每一个技能都要花费一定量的时间,问获得指定的技能的最少原创 2017-03-28 17:15:35 · 580 阅读 · 1 评论 -
POJ - 1637 Sightseeing tour 混合图欧拉回路的判断(最大流)
传送门:POJ1637题意:给出一个混合图,判断是否存在欧拉回路。用网络流判断混合图中是否存在欧拉回路方法及证明:【混合图】混合图(既有有向边又有无向边的图)中欧拉环、欧拉路径的判定需要借助网络流!(1)欧拉环的判定:一开始当然是判断原图的基图是否连通,若不连通则一定不存在欧拉环或欧拉路径(不考虑度数为0的点)。其实,难点在于图中的无向边,需要对所有的无原创 2017-07-23 23:20:20 · 250 阅读 · 0 评论 -
POJ - 3498 March of the Penguins 最大流(拆点 + 枚举汇点)
传送门:POJ3498题意:一堆企鹅要碰面,现在有N块冰块,第i个冰块坐标为(xi,yi),上面有企鹅ni个,能承受企鹅在上面起跳mi次,并且知道企鹅最大跳距离为d,问企鹅们有可能在哪个冰块上汇合。思路:因为要输出所有有可能汇合的冰块,因此我们要枚举汇点,由于每个点有mi的限制,因此要拆点转化为边上的限制,然后最大流判断能否全部到达汇点就行了。代码://ISAP int#incl原创 2017-07-23 23:43:05 · 395 阅读 · 0 评论 -
POJ - 3422 Kaka's Matrix Travels 费用流
传送门:POJ3422题意:有一个N X N的矩阵,每个点都有对应的值,现在要从左上角走到右下角k次,每次只能往下走或者往右走,但是每个点的值只能获得一次,问最大可获得的值是多少。思路:典型费用流,由于每个点的值只能获得一次,要拆点限制一下,然后就是因为点略多,加边的时候细心一点就好了。代码:#include#include#include#include#include原创 2017-07-23 23:50:55 · 218 阅读 · 0 评论 -
POJ - 3680 Intervals 区间图的最大权独立集(最大流)
传送门:POJ3680题意:给定n个带权的开区间,i号区间覆盖(ai,bi),权重为wi,现在要从中选取一些区间,要求任意点都不被超过K个区间覆盖,目标是最大化总的权重。思路:将区间端点看成图中的点,在区间之间和区间内部建边,保证每个区间只能选一次就要在同一个区间的两个端点之间建一条权值为-wi,容量为1的边,剩余的点之间建边容量为inf,权值为0,至于每个点至多选k次,用源点的出边限制一原创 2017-07-24 17:30:47 · 969 阅读 · 0 评论 -
POJ - 3762 The Bonus Salary! 区间图的最大权独立集(最大流)
传送门:POJ3762题意:每天都有n种工作,每种工作有不同的价值,每种工作只能做一次,某一时刻只能做一种工作,问k天内最多可获得的价值是多少。思路:这题就是POJ3680的翻版,做法详见POJ3680。代码:#include#include#include#include#include#define ll long long#define inf 0x3f3f3f3原创 2017-07-24 18:43:55 · 202 阅读 · 0 评论 -
POJ - 2987 Firing 最大权闭合子图(最小割)
传送门:POJ 2987题意:老板决定裁员,每开除一个人,同时要将其下属一并开除,如果该下属还有下属,照斩不误。给出每个人的贡献值和从属关系,求最小裁员数及最大贡献值和。定理:最大权闭合图的的权=原图中权值为正的点权和 - 最小割(最大流)正解:最大权闭合图定理题,证明及相关建图方法放到代码后面,这题关键是求最小裁员数的部分有意思,由于定理中的相关内容,正常思路是求完最大流后在从源点开原创 2017-07-24 20:15:53 · 374 阅读 · 0 评论 -
POJ - 3189 Steady Cow Assignment 二分 + 枚举 + (最大流||二分图多重匹配)
传送门:POJ3189题意:有n头猪,m个猪圈,每个猪圈都有一定的容量,每只猪对每个猪圈的喜好度不同(所有猪圈在每个猪心中都有一个排名),要求所有的猪都进猪圈,但是要求所有猪的喜好度排名最低的和最高的差值的绝对值最小。思路:这题网上很多做法,但综合来说无非 二分、枚举、最大流、二分图多重匹配,二分就是二分题目中问的差值的绝对值,枚举就是枚举上界或者下届,最大流或者二分图多重匹配就是用来检原创 2017-07-24 20:56:58 · 322 阅读 · 0 评论 -
POJ - 3204 Ikki's Story I - Road Reconstruction 最大流(残余网络应用)
传送门:POJ3204题意:给定一个流网络,找到扩充其容量就能使最大流的流量增加的边,并统计有几条。思路:根据最大流性质,很容易知道只有最大流中的满流边才有可能成为满足题意的边,因为非满流边你再扩充它它也不可能满流,假设满流边为(u,v),还要满足s到u的存在非满流路径,v到t存在非满流路径才能使得(u,v)成为满足题意的边。所谓非满流路径就是指存在这样一条路径,路径上的边都是非满流的。原创 2017-07-24 21:26:43 · 343 阅读 · 0 评论 -
2017 百度之星 初赛B轮 HDU6114 HDU6118 HDU6119
先吐槽一下,百毒之星真不愧为百毒之星啊,这次初赛B轮1002 神TM(1e5)^3也能在10s内跑过,这TM是量子服务器吧,还有资格赛各种数据+题面问题,无力吐槽了都。传送门:HDU6114题意:中文题。思路:仔细分析一下就是求C(n,m),比赛的时候因为数据量小不想处理逆元xjb写了半天都不对,最后还是从博客里扒了个lucas的板子交了。代码:#include#de原创 2017-08-13 18:56:25 · 857 阅读 · 0 评论 -
HDU 6126 Give out candies 最小割
传送门:HDU6126题意:有nn个小朋友,标号为11到nn,你要给每个小朋友至少11个且至多mm个的糖果。小朋友们共提出kk个要求,每个要求包括三个整数x,y,zx,y,z,表示xx号小朋友得到的糖果数减去yy号小朋友得到的糖果数,结果应当不大于zz。如果你给ii号小朋友jj颗糖果,他会获得w_{i,j}wi,j的满意度,你需要最大化所有小朋友的满意度之和。1\leq n,m\le原创 2017-08-16 00:34:01 · 404 阅读 · 0 评论 -
HDU - 5855 Less Time, More profit 最大权闭合子图 + 二分
传送门:HDU 5855题意:有n个工厂,m个商店 每个工厂有建造时间ti,花费payi 每个商店和k个工厂有关,如果这k个工厂都建造了,那么能获利proi 问你求收益(∑pro−∑pay)≥L时,首先满足时间t最小,其次是收益p最大显然要满足最长的时间最短要二分,我们将商店向工厂连边,由于商店需要的所有工厂都要建设才能使商店获利,因此显然最后选择出来的原创 2017-09-13 17:02:20 · 200 阅读 · 0 评论 -
Codevs 1907 方格取数 3 最小割
传送门:1907 方格取数 3思路:原创 2017-07-10 13:09:52 · 219 阅读 · 0 评论 -
CodeVs 1034 家园 枚举+网络流
传送门:codevs 1034思路:一开始的思路是按时间拆边,在两个点之间建许多条权值不同的边,其权值代表时间,然后用费用流做,但是仔细想想发现根本行不通。。正解:由于我们要求最短时间,并且点数很少,因此我们可以枚举时间t,然后将每个点拆成t个,代表一个点在每个时间点的状态。这样建图的话就要求同一个点的相邻时间点之间建边,权值为inf(因为每个太空站可以容纳无限多),然后对应的有班车的太空原创 2017-07-09 20:03:55 · 254 阅读 · 0 评论 -
UVAlive 6571 最小路径覆盖变形(带权) 拆点+ISAP
传送门:UVAlive 6571题意:给定n种课程,每种课程i有固定的参与人数Si和开始时间Ai和结束Bi,还有一个打扫时间矩阵C[i][j],表示同一间教室若上完课程i还需要C[i][j]的时间才能再上课程j,给出每间教室最多能容纳的人数M,问最少用多少间教室能使课程正常进行。思路:我们先不考虑打扫教室花费的时间,并且反向思维,我们如果求出有多少节课能共用教室的话,那么我们用所有课程单独原创 2017-04-10 10:52:24 · 284 阅读 · 0 评论 -
Landscaping Gym - 101128F 最小割
题意:给定一个N*M的矩阵图,'#'代表高地,'.'代表低地,一排拖拉机从上面开到下面,一排从左面开到右面,经过高低地的分界时会有A花费,你也可以花费B选择某一块地将其由低变高或者由高变低。问怎样总花费最少。思路:一开始还以为是搜索什么的,怎么也没想到是网络流。。还是思维太狭隘了。建图方法:先不考虑换地,我们很自然可以想到的是相邻'#'和'.'之间建边,花费为A,那么相邻的'.'和'.'之原创 2017-04-01 12:16:43 · 494 阅读 · 0 评论 -
Transportation HDU 3667 UVALive - 5095 拆边+最小费用最大流
传送门:HDU3667题意:有n个点m条边组成的有向图,要把k单位的货物从1号点运送到n号点,每条路有一个系数a,重量为x的货物花费为a*x^2,问最少花费是多少。思路:典型的最小费用最大流,难处理的地方就是边权问题,最小费用最大流一般解决的都是单位货位花费固定的问题,这样2次方增长花费的我们就不能直接套模板了。考虑拆边,将每条边拆成容量为1,单位花费为1*a,3*a,5*a,7*a,原创 2017-04-01 16:43:33 · 332 阅读 · 0 评论 -
Ombrophobic Bovines POJ - 2391 floyd+二分+拆点+最大流
传送门:POJ2391题意:有n个牛场,每个牛场有初始牛群和一个避雨棚,每个牛场的避雨棚都有自己的最大容纳量,某些牛场之间有道路连接,牛走过这些道路需要花费一定量的时间,问最少多长时间能让所有的牛都找到一个避雨棚。思路:这题和poj2112很相似,由于前两天刚做了poj2112,于是看完题就想到了二分+floyd+最大流,自信写完,然后样例也一遍过,还以为要1A了,然而却是无限的wa。。原创 2017-04-29 21:37:54 · 218 阅读 · 0 评论 -
PIGS POJ - 1149 最大流(建图神题)
传送门:POJ1149正确建模方法:这题说多了都是泪啊,连暴力建模方法都和大牛想的不一样,还傻X的想为什么连样例都过不了。。说这题是建图神题是因为他用到了许多建图时的优化方法,建图的基本优化准则:直到今天才接触到这些方法,实在是太弱了。。都不敢往外说自己是搞图论的。。代码://ISAP int#include #include #include原创 2017-04-29 21:52:34 · 344 阅读 · 0 评论 -
Farm Tour POJ - 2135 最小费用最大流
传送门:POJ2135题意:给出n个点和m条边,每条边只能走一次,问从1走到n再走回1的最小路程是多少。思路:看完题我第一反应这不是最短路么。。求两遍最短路就好了啊。。仔细想想却很难实现,因为有重边,所以要用链式前向星法建图,但这样的话就会很难删边。正解:最小费用最大流,源点到1号点容量为2,N号点到汇点容量为2,其余点之间容量为1,费用为边长,跑一遍最小费用最大流就好了。。看di原创 2017-04-30 21:08:00 · 379 阅读 · 0 评论 -
A - Alice's Chance POJ - 1698 二分图多重匹配||最大流
传送门:POJ1698题意:爱丽丝要拍电影,有n部电影,规定爱丽丝每部电影在每个礼拜只有固定的几天可以拍,电影i必须在w[i]个礼拜内拍完,并且电影i爱丽丝至少要拍d[i]天,问爱丽丝能不能拍完所有的电影.思路:一开始只想到了是网络流,我的建图方法是增加一个源点和汇点,从source到每一天建立权值为1的边,如果某一天能拍某部电影,则建立对应的权值为1的边,然后再将每部电影和sink建边,原创 2017-04-26 16:02:12 · 248 阅读 · 0 评论 -
Optimal Milking POJ - 2112 floyd+二分+最大流
传送门:POJ2112题意:有K个产奶机(1--K)和C头奶牛(K+1--K+C),每个产奶机最多可供M头奶牛使用,并告诉了产奶机、奶牛之间的两两距离Dij(1思路:如果不加最长距离最短的限制条件的话就是一个二分图多重匹配问题,而最长距离最短者中限制条件一般都用二分来解(看题后智障如我,根本没反应过来这是个二分的典型条件。。),因此,我们可以二分答案,然后每次判断最大匹配数等不等于总牛数,原创 2017-04-26 21:23:33 · 238 阅读 · 0 评论 -
Dining POJ - 3281 Dining 拆点+最大流
传送门:POJ3281题意:有N头牛,F种食物和D种饮料,每头牛都有各自喜欢的食物和饮料,每种饮料或食物只能分配给一头牛,问最多有多少头牛能同时得到自己喜欢的食物和饮料。思路:一开始把饮料和食物放在一起建图, 想了很久也没想出个所以然来。正解:将饮料和食物分别放在两边,中间用牛隔开,并且牛要拆点,这样才能限制每头牛只能选一个食物和饮料(即限制点流量)。详细建图解释参考挑战程序设计P原创 2017-06-16 00:05:54 · 432 阅读 · 0 评论 -
codevs 1033 蚯蚓的游戏问题 费用流+拆点
传送门:codevs1033思路:一开始没审清楚题,智障的写成了最大流,结果发现是要求点权和。。既然是关于点权的问题,并且还要限制每个点的流量,那么必定要拆点将点权转化为边权,然后按照题目给定的走法连边就好了。代码:#include#define ll long long#define inf 0x3f3f3f3fusing namespace std;const int MA原创 2017-06-06 10:55:48 · 355 阅读 · 0 评论 -
Dual Core CPU POJ - 3469 最小割(经典网络流)
传送门:POJ3469题意: 要在核A和核B组成的双核CPU上运行N个模块,模块i在核A上执行的花费为Ai,在核B上执行的花费为Bi。有M个相互之间需要进行数据交换的模块组合(ai,bi),如果这两个模块在同一个核上执行则没有额外花费,否则会产生wi的花费,请计算执行所有模块的最小花费。思路:在这里只说建图方法,更多解释详见挑战程序设计第二版P236。1.新建源点和汇点,所有源点向所原创 2017-06-17 16:52:04 · 416 阅读 · 0 评论 -
Going Home POJ - 2195 费用流
传送门:POJ2195题意:给定n*m矩阵,矩阵中的'H'代表房子,'m'代表人,人可以上下左右移动,每移动一次要花一单位费用,每个房子只能住一个人,问每人到达一个房子的最少花费总和是多少。思路:感觉和以前做过的某个搜索题很像,不过这里同一点可以同时容纳多人,只是一个人房子只能住一个人,将每个房子和每个人建边,流量限制为1,花费为曼哈顿距离,然后就可以用最小费用最大流求解了。代码:原创 2017-06-13 23:36:25 · 239 阅读 · 0 评论 -
Minimum Cost POJ - 2516 费用流
传送门:POJ2516题意:有n个客户,k种商品,m个仓库,每个仓库里都存有不等量的k种商品,现给出i种商品运送到客户j的单位花费,问满足所有客户需求的最小花费是多少,若不能满足需求则输出-1。思路:典型最小费用流,并且能否满足需求是可以提前算出来的,只要k种物品中的每一种都总需求小于总供应(即供大于求)就能满足。然后是建图,我们无法一下求出k种物品的最小花费,但由于k种物品是互不相干的,原创 2017-06-14 23:35:04 · 267 阅读 · 0 评论 -
计蒜客 Our Journey of Dalian Ends(17新疆网赛) 费用流(思维建图)
传送门:Our Journey of Dalian Ends题意:给出一个无向图,要从Dalian到Xian,途径Shanghai,必须走最短路且每个城市只能经过一次,问最短路长度是多少。思路:比赛时候想了2个小时该怎么建图才能使得必须经过Shanghai,赛后发现以Shanghai为起点,另两个为终点不就得了。。我真是个傻X。。至于每个城市只能经过一次什么的拆点限制一下就好啦,注意S原创 2017-09-17 00:24:49 · 171 阅读 · 0 评论