网络流
HonniLin
double fighting
展开
-
POJ 3281 - Dining(网络流‘最大流)
题目:http://poj.org/problem?id=3281题意:有N头牛,F种食物D种饮料,每头牛都有各自喜欢的食物和饮料,但是每一种只能分给一头牛,求出最多有几头牛可以得到喜欢的食物和饮料。思路:拆点网络流。连接边为:s->食物->牛->牛->饮料->t, 容量都为1.AC.#include #include #include #include原创 2015-04-22 20:06:08 · 541 阅读 · 0 评论 -
ZOJ 3792 - Romantic Value (网络流‘最小割)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5300题意:n个点,m条边,起点s终点t,构成无向图。为了使得两个点无法联通,删去的边的权值最小且边数最少,求出剩下的边总权值/ 删去的边数。思路:最小割。边权 c = c*10000+1;flow/10000 为删去的边权值,flow%原创 2015-07-20 18:32:04 · 658 阅读 · 2 评论 -
HDU 4411 - Arrest(网络流‘最小费用最大流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4411题意:起点0有k个人,1~n座城市分别有坏人,k个人分开出动,要按城市顺序捉坏人,所有城市都需要遍历。最后出动的人全部回到起点,求出所有人经过的最短距离。思路:题目有几个限定条件:1.每一个城市都需要经过。2.按城市顺序捉拿坏人。按照条件建图。根据条件一建图:将原创 2015-08-14 23:13:21 · 560 阅读 · 0 评论 -
HDU 5383 - Yu-Gi-Oh!(网络流’最小费用最大流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5383题意:有n种怪物,有两个种类0和1,每种怪物都有其等级和杀伤力,一只0怪物和一只1怪物可以组成一只大怪物,其等级是小怪物等级相加,他有自己的杀伤力。有些怪物要有特定的怪物组成。求出可以组成的怪物杀伤力的最大值。思路:先将两种怪物按照二分图一样分成两部分,能够组成大怪物等级的两只原创 2015-08-14 23:22:54 · 1065 阅读 · 0 评论 -
HDU 3338 - Kakuro Extension(网络流‘最大流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3338题意:给你一个n*m的矩阵,往空白格里面填 1~9的数字,得到列等于左下角的数字,行等于右下角的数字。思路:最大流的性质,流入容量会等于流出容量。和题目中的行总和会等于列总和性质相同,由此可以建图。为了方便建图,本应填入1~9,改为填入0~8,行列和相应减去,便可同普通的最原创 2015-08-16 21:19:59 · 664 阅读 · 2 评论 -
HDU 5352 - MZL's City(网络流‘最小费用流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5352题意:n个点,m条边,每次最多复活k个点。操作1:u,复活与u相连的点。操作2:u,v u和v之间连边。操作3:cnt 删除cnt条边,有给出起点终点。求出最多复活城市的个数且输出字典序最小的每次操作1复活的城市个数。思路:设每次操作1为点i+n,dfs得到与原创 2015-08-05 21:45:53 · 507 阅读 · 0 评论 -
HDU 4406 - GPA(网络流‘费用流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4406题意:复习m门课,有n天的复习时间,每一天只能复习k个课时。给出m门课的学分和基础分。n*m的矩阵:1表示i天可以复习课程j 。花一个课时复习该课程则可以增加一分。在使得没有课程不及格的情况下,求出最高的GPA(给出相关公式)。思路:每科的绩点f(x, w) = (4.0 -原创 2015-09-04 17:06:39 · 420 阅读 · 0 评论 -
HDU 4940 - Destroy Transportation system(网络流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4940题意:给出一个强连通图,每条边有两个权值,破坏边的权值和修建边的权值。询问是否存在一个集合S及其补集T,使得从S到T破换的边的权值和X,从T到S破坏的边和修建的边的权值和Y,满足X 思路:有上下界的网络流。如果所有流出的流量等于流回的流量,那么便满足 X 建图:1:原创 2015-09-05 16:52:24 · 502 阅读 · 0 评论 -
UVA 12534 - Binary Matrix 2 (网络流‘最小费用最大流’ZKW)
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=93745#problem/A题意:给出r*c的01矩阵,可以翻转格子使得0表成1,1变成0,求出最小的步数使得每一行中1的个数相等,每一列中1的个数相等。思路:网络流。容量可以保证每一行和每一列的1的个数相等,费用可以算出最小步数。行向列建边,如果该格子是原创 2015-10-04 22:19:17 · 712 阅读 · 0 评论 -
ZOJ 3760 - Treasure Hunting(网络流‘最小割’最大点权独立集)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3760题意:有n个点,每个点的价值是x&y,求出一个集合,使得集合中任意两点之间的 gcd(xi^yi^xj^yj, p)> 1。求出集合的最大点权。思路:要使得别人与自己的公约数不为1.则p必定为偶数。两个点的异或值都为偶数则异或为偶数,两个点的异原创 2015-10-05 22:37:07 · 478 阅读 · 0 评论 -
ZOJ 3231 - Apple Transportation(上下界费用流)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3231题意:n个点 有点权和边权的树,要使得树上的点权尽量平均,求出最小花费。思路:最终的状态是 每个点的点权是 avg 或者avg+1,则每个点都有一个容量下界avg,每一个连一条容量为avg的边到汇点t。而容量上界为avg+1,则每一个点还要连一原创 2015-10-13 14:32:31 · 615 阅读 · 0 评论 -
Codeforces Round #284 (Div. 1) C. Array and Operations(网络流‘最大流)
题目:http://codeforces.com/problemset/problem/498/C题意:给出n个数的数值,m对数(ai,aj),i与j的奇偶性不同,每次选中一对数,是否存在一个数v使得ai与aj都整除,求问最多操作多少次。思路:每次选择两数的质因子,则可以保证操作次数最多。处理出每个数的质因子,接着奇数位的和s连边,偶数位与t连边,有关系的数对连边,跑最原创 2015-08-10 15:57:25 · 375 阅读 · 0 评论 -
HDU 4494 - Teamwork(最大流)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4494题意:n个任务,m种人,给出起点,以及n-1个点的 坐标,任务的开始时间,持续时间,以及每种人需要的人数。同一个人可以完成多种任务,但必须在开始时间之前到达,求出完成所有的任务最少需要多少人。思路:建立源点s,汇点t,拆点i,i+n,可以将人转移的两个任务连边(i,j+n),跑最大原创 2015-07-14 15:27:08 · 511 阅读 · 0 评论 -
POJ 1815 - Friendship(网络流‘最小割)
题目:http://poj.org/problem?id=1815题意:n个点,起点s,终点t。n*n的关系矩阵,计算最少删去多少点使得s与t之间没有联系。思路:最少点割集问题。建边:拆点(a,n+a,1),(u+n,v,INF),(s,s+n,INF),(t,t+n,INF),所以起点终点为(s,t+n)。题目要求将删去的点按字典序最小的输出,则枚举删点1-n原创 2015-05-18 17:42:33 · 577 阅读 · 0 评论 -
CSU 1506 - Double Shortest Paths(网络流’最小费用流)
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=75853#problem/D题意:求出两个人从1走到n的最小花费,前一个人走过的路径权值会改变为d+a。思路:两点之间建两条边,分别为 容量1费用d 和 容量1费用d+a。由于模板求的是最小费用最大流,而本题需要限制流量为2,所以需要另设源点和汇点(容量为2)原创 2015-04-24 21:58:53 · 750 阅读 · 0 评论 -
zoj 2587 - Unique Attack(网络流’最小割)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1587题意:N个点,M条无向边,判断从s到t的最小割是否唯一。思路:判断最小割是否唯一的方法是:跑一次最大流,从源点s和汇点t各一次dfs,用一个数组记录经过的点。两次dfs之后有点未被记录则最小割不唯一。否则唯一。AC.#inclu原创 2015-05-10 20:57:56 · 484 阅读 · 0 评论 -
ZOJ 2532 - Internship(网络流‘最小割)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1532题意:N个城市,M个中中转站,L条有向边(表示从u到v的容量为c),总部t为节点0,。问要增加哪条边的容量才能使得总容量增加,输出边的id。思路:做一次最大流之后,寻找参与网络中满足条件的割(u,v),条件为: 1.满流;2.源点s可达u,原创 2015-05-10 19:15:02 · 564 阅读 · 0 评论 -
ZOJ 2760 - How Many Shortest Path(网络流’最大流)
题目:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1760题意:n*n的矩阵,表示各点之间的路径关系,给出源点汇点s,t,求出从s到t的最短路径的条数。思路:用floyd 求出各点的最短距离,接着用网络流最大流求路径。若 d[s][i] + fd[i][j] + d[j][t] == d[s][t原创 2015-05-03 19:00:33 · 556 阅读 · 0 评论 -
POJ 2699 - The Maximum Number of Strong Kings(网络流‘最大流)
题目:http://poj.org/problem?id=2699题意;比赛中每个人的得分为他打败的人数,得分最高的人可称为 strongking,打败得分最高的人也可以成为SK,给出比赛中每个人的得分,从小到大排,求出最大可能的SK的人数。思路:好难想的建图> 有人说:一般遇到竞赛图,网络流的可能性较大,因为竞赛图中的条件都与点的度数有关。建图:左边是人(s,i,原创 2015-05-03 16:02:01 · 561 阅读 · 0 评论 -
SGU 326 - Perspective(网络流‘最大流)
题目:http://acm.sgu.ru/problem.php?contest=0&problem=326题意:给出一组中n个人的得分,以及每个人还需比赛的数量(包括组内和组外),在给出组内人之间还需要比赛的关系矩阵,判断第一个人是否有机会得到第一名。思路:先使用贪心的想法,若第一个人赢得了组内组外所有的比赛的分数,还有人比他高的,则输出NO。假设除人1 外其他人输掉原创 2015-05-04 19:16:29 · 550 阅读 · 0 评论 -
POJ 2391 - Ombrophobic Bovines(网络流’最大流+Floyd+二分)
题目:http://poj.org/problem?id=2391题意:给定一个无向图,点i处有Ai头牛,点i处的牛篷能容纳Bi头牛,求一个最短时间T使得所有的牛能进入牛篷。思路:一次最短路floyd,求出各点之间的最短距离,要用longlong,且INF要很大(WA了很多遍)。二分时间T,若d[i][j]AC.#include #include #incl原创 2015-05-06 17:26:24 · 551 阅读 · 0 评论 -
SGU 438 - The Glorious Karlutka River =)(网络流‘最大流)
题目:http://acm.sgu.ru/problem.php?contest=0&problem=438题意:河中有N块石头,河宽是W,M个游客,游客最多可以跳D米,每跳一次耗时1s。给出N块石头的坐标和承重量,游客在南岸出发(即x轴)。问是否能够全部通过河,若能通过则求出最少用时。思路:动态流问题。在限制流量的情况下加入时间的限制。通过枚举时间来建图,将每一时原创 2015-05-06 17:05:36 · 665 阅读 · 0 评论 -
HOJ 2634 - How to earn more(网络流’最小割)
题目:http://acm.hit.edu.cn/hoj/problem/view?id=2634题意:给出n个任务的收入值,m个人的雇佣费,每一个任务会有几个人来完成,一个人可以完成多个任务。求出收入的最大值。思路:“蕴含式最大获利问题”。s与每个项目连边,每个人与t连边。相关联的的项目与人连边,容量为iNF。选中的任务p在集合S中,则完成此任务的人也在S中,因为原创 2015-05-07 21:54:10 · 969 阅读 · 0 评论 -
HOJ 2713 - Matrix1(网络流‘最小割)
题目:http://acm.hit.edu.cn/hoj/problem/view?id=2713题意:给出n*m的矩阵方格,每个方格都有一个价值c, 选取互不不相邻的一些点,求得到的最大的总价值。思路:最大点权独立集问题。转化成最小点权覆盖集。将网格黑白涂黑,将s与每一个黑点相连,白点与t相连。黑点与其四周的白点相连,容量为INF,答案为Csum - 最小割。因为原创 2015-05-07 21:26:19 · 853 阅读 · 1 评论 -
UVAlive 7037 - The Problem Needs 3D Arrays(网络流‘最大密度子图)
题目:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=94761#problem/C题意:序列T,r(S)表示子序列S(不连续)中的逆序数对,L(S) 表示S 的长度,求出 r(S) / L(S) 的最大值思路:r(S) 可以看成边,L(S) 可以看成点,使得 E / V 最大,则题目转化为 求解 最大密度子图。原创 2015-10-11 21:09:05 · 775 阅读 · 0 评论