网络流
v5zsq
新的一天,新的不会
展开
-
Newcoder 111 D.托米去购物(最大流-dinic)
Description由于这里什么都没有,于是他去超市选了很多生活用品,更多的是吃的,然后推着堆满零食的购物车到柜台等待结账。当然,我们都知道他的钱包里有很多钱。但是,作为一名为生活精打细算的男孩子,他更愿意使用其他支付方式如:饭券,礼券,不同类型的优惠券等。但是饭券只能用于购买食物,而礼券通常只限于某种类型的礼物。现在给你托米购物车中物品的数量nnn和每件物品的价格。也会给出他钱包中的代金...原创 2018-10-16 22:37:50 · 286 阅读 · 0 评论 -
HDU 6126 Give out candies(最小割-Dinic)
Description有nn个人,给每个人分11~mm个糖果,有kk个限制,每个限制给出x,y,zx,y,z,表示第xx个人分到的糖数减去第yy个人分到的糖数不大于zz,给第ii个人jj颗糖获得的满意度为wi,jw_{i,j},问总满意度最大值Input第一行一整数TT表示用例组数,每组用例首先输入三个整数n,m,kn,m,k表示人数,糖数和限制数,之后一个n∗mn*m的矩阵wi,jw_{i,j}为原创 2017-09-26 16:47:54 · 577 阅读 · 0 评论 -
HDU 6142 Jedi Council(最小割-Dinic)
Descriptionnn个值wiw_i,每个值要么是ww要么是−w-w,给出qq个限制,限制有三种:x y 0x\ y\ 0:wx≤wy :w_x\le w_yx y 1x\ y\ 1:wx=wy :w_x=w_yx y 2x\ y\ 2:wx<wy :w_x<w_y要求给出满足上述条件的赋值使得O=∑i=1nwi+∑i=1pHiO=\sum\limits_{i=1}^nw_i+\sum\limi原创 2017-09-26 11:12:02 · 442 阅读 · 0 评论 -
HDU 5294 Tricks Device(SPFA+最大流-Dinic)
Description 给你n个墓室,m条路径,一个人在1号墓室(起点),另一个人在n号墓室(终点),起点的那个人只有通过最短路径才能追上终点的那个人,而终点的那个人能切断任意路径。 第一问:终点那人要使起点那人不能追上的情况下可以切的最少的路径数,输出最少的路径数 第二问:起点那人能追上终点那人的情况下,终点那人能切断的最多的路径数,输出最多的路径数 Input 多组用例,每组用例第一原创 2015-08-11 17:01:03 · 499 阅读 · 0 评论 -
SPOJ 287 NETADMIN - Smart Network Administrator(二分+最大流-Dinic)
Description 有n户人家,m条街道,只有第一家有网,现在有k户人家想连网就要从第一家拉网线经过若干条街道过来,每根网线都有颜色,要求一条街道上的网线颜色互不相同,问网线颜色数最少为多少 Input 第一行一整数T表示用例组数,每组用例输入三个整数n,m,k分别表示居民户数,街道数和需要用网的居民数,之后输入k个整数表示需要用网的居民编号,最后输入m行每行两个整数u和v表示u居民和v居原创 2017-07-20 09:16:15 · 584 阅读 · 0 评论 -
GYM 100694 F.The Berland Championship(最大流-Dinic)
Description 一场比赛有m道题,n名选手,第i名选手每场比赛最多做出a[i]道题,且只会做一些题,现在要从这n名选手中选出三人组队去参加该场比赛,问派哪三个人去可以做出最多数量的题 Input 第一行两个整数n和m分别表示人数和题数,之后n个整数a[i]表示第i名选手可以做出的题数,然后n个长度不超过10的字符串表示每位选手的名字,之后n个长度为m的01串表示每位选手可以做出的题目(原创 2017-03-25 14:39:19 · 398 阅读 · 0 评论 -
GYM 101128 F.Landscaping(最小割-Dinic)
Description 一块n*m的草坪,有两种高度的草,#表示较高的草,.表示较矮的草,现在要从左往右和从上往下用收割机收割,在相同高度的草坪上收割机不耗油,当高度变化时需要耗花费为a的油,还可以花费b改变任一块草坪的高度,问这n+m排收割机扫过这块草坪需要的最小花费 Input 第一行四整数n,m,a,b分别表示草坪行列数和两种花费,之后一个n*m矩阵表示该草坪(1<=n,m<=50,1<原创 2017-03-13 15:25:30 · 649 阅读 · 0 评论 -
GYM 101149 D.Behind the Wall(最小割-Dinic)
Description 给出一个n*m的地图,A[i][j]表示给(i,j)点建立屏障所需费用,现在给出一个点(x,y),要求用最小代价把(x,y)围住(即上下左右运动最终都会屏障挡住) Input 第一行四个整数n,m,x,y分别表示地图行列数以及要围住的点坐标,之后一个n*m矩阵A(3<=n,m<=50,2<=x<=n-1,2<=y<=m-1,0<=A[i][j]<=500,A[x][y]原创 2017-03-19 09:52:39 · 611 阅读 · 0 评论 -
HDU 5855 Less Time, More profit(最大权闭合子图)
Description m家商店,n家工厂,第i家商店赢利vi元的前提是建立对应的ki家工厂,建立第i家工厂需要花费wi,用时ti,工厂的建立可以同时进行,问总赢利不小于L所需的最小时间 Input 第一行一整数T表示用例组数,每组用例首先输入三个整数n,m,L表示工厂数,商店数,以及赢利下限,之后m行每行两个整数wi和ti表示建立第i个工厂的花费和用时,最后n行每行首先输入该家商店的赢利wi原创 2016-09-02 21:55:49 · 462 阅读 · 0 评论 -
HDU 5772 String problem(最大权闭合子图)
Description 给出一个数字串,现在要选出一个价值-代价最大的子序列,子序列价值和代价计算方法如下: 子序列的价值: sum(w[id(i)][id(j)]) (i !=j) id(i)为这个子序列中第i个字符在原串中的位置 子序列的代价: 设x为数字i出现的次数,则代价为a[i]*(x-1)+b[i] (x>0) 0 (x=0) Input 第一行为一整数T表示用例组数,每组原创 2016-08-10 14:21:34 · 475 阅读 · 0 评论 -
HDU 4494 Teamwork(最大流-Dinic+最小费用最大流-mcmf)
Descriptionmm种工人,n−1n-1个工作,给出第ii个工作地点的坐标,开始时间,工作完成所需时间以及所需每种工人的数量,两个工作地点之间的距离定义为欧氏距离,工人速度为单位距离每单位时间,工人完成一个工作后如果在到达另一个工作地点时还没到开始时间即可继续工作,问至少要多少名工人才能完成这nn项工作Input第一行一整数TT表示用例组数,每组用例输入两整数nn和mm分别表示工作数量和工人数原创 2017-09-18 19:10:33 · 941 阅读 · 0 评论 -
HDU 6118 度度熊的交易计划(最小费用可行流)
Description度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题:喵哈哈村以及周围的村庄可以看做是一共由nn个片区,mm条公路组成的地区。由于生产能力的区别,第ii个片区能够花费a[i]a[i]元生产11个商品,但是最多生产b[i]b[i]个。同样的,由于每个片区的购买能力的区别,第ii个片区也能够以c[i]c[i]的价格出售最多d[i]d[i]个物品。由于原创 2017-09-28 21:56:20 · 496 阅读 · 0 评论 -
HDU 6445 Search for Answer(最小费用最大流-mcmf)
Description给出一个nnn个点的完全图的邻接矩阵aaa,其中ai,j=1a_{i,j}=1ai,j=1表示i,ji,ji,j之间边的方向是iii到jjj,ai,j=0a_{i,j}=0ai,j=0表示i,ji,ji,j之间边的方向是jjj到iii,ai,j=aj,i=2a_{i,j}=a_{j,i}=2ai,j=aj,i=2表示i,ji,ji,j之间边的方向尚未确定,要求给不确...原创 2018-09-30 11:36:00 · 458 阅读 · 0 评论 -
Newcoder 130 D.黑妹的游戏IV(最大流-dinic)
Description黑妹又来玩游戏了,这次她面对的是两个长度为nnn的正整数序列AAA和BBB,并且她要维护两个二元序对集合S1S_1S1和S2S_2S2,初始时这两个集合是空的,每一次她可以进行一次操作,选择满足以下条件的两个序对(i,j)(i, j)(i,j)和(p,q)(p, q)(p,q),1.(i,j)(i, j)(i,j)不在S1S_1S1中并且(p,q)(p, q)(p,...原创 2018-10-06 09:32:29 · 261 阅读 · 0 评论 -
HDU 6437 Problem L.Videos(最小费用最大流-mcmf)
Description有KKK个人看mmm个电影,给出每个电影的开始时间sss和结束时间eee以及看这个电影收获的快乐值www,只有看完一个电影才能去看另一个尚未开始的电影,且一个电影至多一人看,电影分两种,如果一个人连续看两个同种电影则会损失WWW快乐值,问这些人的快乐值之和最大值Input第一行一整数TTT表示用例组数,每组用例首先输入四个整数n,m,K,Wn,m,K,Wn,m,K...原创 2018-09-13 20:57:19 · 207 阅读 · 0 评论 -
Newcoder 144 G.Pikachu(最大流+树形DP+高精度)
Description给出一棵nnn个节点的树,边有边权,对这nnn个节点建一张完全图,图中两点间距离为两点的树上距离,问任意两点在图上的最大流之和Input第一行一整数TTT表示用例组数,每组用例首先输入一整数nnn表示点数,之后n−1n-1n−1行每行输入三个整数u,v,wu,v,wu,v,w表示u,vu,vu,v之间有一条权值为www的树边(1≤T≤10,2≤n≤105,1≤wi≤1...原创 2018-09-18 14:25:04 · 239 阅读 · 0 评论 -
HDU 6350 Always Online(最大流+并查集)
Description给出一个nnn个点mmm条边的无向图,任意两点之间至多两条路径,以flow(s,t)flow(s,t)flow(s,t)表示s,ts,ts,t两点之间的最大流,求∑1≤s<t≤ns⊕t⊕flow(s,t)∑1≤s<t≤ns⊕t⊕flow(s,t)\sum\limits_{1\le sTTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m表示点数和边数,...原创 2018-09-06 08:18:56 · 670 阅读 · 0 评论 -
GYM 101606 K.Knightsbridge Rises(最大流-Dinic)
Description现在有mmm个重量分别为TiTiT_i的物品需要吊到楼上,有nnn个吊车,第iii个吊车的重量为WiWiW_i,可以吊起的重量为LiLiL_i,重量为000表示该吊车可以无代价的先放置在楼上以吊起重物或其他吊车,问如果安排吊车可以把这mmm个重物都吊到楼上,一个吊车只能用一次Input 第一行一整数nnn表示吊车数量,之后nnn行每行两个整数Li,WiLi,WiL...原创 2018-05-27 20:56:22 · 452 阅读 · 0 评论 -
HDU 5889 Barricade(bfs+最小割-Dinic)
Description给出一张nnn个点mmm条边的无向图,边权均为111,敌人在nnn点准备走最短路在攻击己方位置111点,现在要在一些边上设置一些路障,给出每条边设置路障的代价,要求用最少的代价设置路障使得敌人必然遇到路障Input第一行一整数TTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m表示点数和边数,之后mmm行每行输入三个整数u,v,wu,v,wu,v,w表示...原创 2018-04-05 11:18:38 · 241 阅读 · 0 评论 -
计蒜客 16959 Our Journey of Dalian Ends(最小费用最大流-mcmf)
Description给出若干路线,问从大连到西安,途中经过上海,在保证每个城市至多经过一次的条件下的最短路径长度Input第一行一整数TTT表示用例组数,每组用例首先输入一整数mmm表示路线数量,之后mmm行每行输入两个城市的名称和这两个城市之间路线的长度(m≤104)(m≤104)(m\le 10^4)Output输出从大连到西安途经上海的最短路线长度,如果不存在合法路线则...原创 2018-03-02 10:36:32 · 278 阅读 · 0 评论 -
HDU 6214 Smallest Minimum Cut(最小割-Dinic)
Description给出一个网络,求源点sss到汇点ttt的最小割的最小割边数Input第一行一整数TTT表示用例组数,每组用例首先输入两个整数n,mn,mn,m表示点数和边数,之后输入两个不同的整数s,ts,ts,t表示源点和汇点,最后mmm行每行三个整数u,v,wu,v,wu,v,w表示u,vu,vu,v两点之间有一条权值为www的边(1≤T≤300,2≤n≤200,0≤m≤...原创 2018-02-19 14:38:01 · 262 阅读 · 0 评论 -
POJ 2987 Firing(最大权闭合子图)
Description 一个公司有n名员工,员工之间有一些从属关系,裁掉每位员工会带来一个价值(可正可负),现在公司要裁掉一些员工,规定每裁掉一个员工就要裁这个员工的所有下属,问如何裁员能使得剩余员工的总价值最大,此时需要裁掉多少名员工 Input 第一行两个整数n和m表示员工个数和从属关系数,之后n个整数wi表示裁掉每位员工的价值,最后m行每行两个整数a和b表示a是b的上司 (0<=n<=原创 2016-08-10 10:46:20 · 812 阅读 · 0 评论 -
HDU 5619 Jam's store(最小费用最大流-mcmf)
Description Jam不好好学习,然后就去帮别人修电脑了,在一家店里,有M个店员,现在有N个顾客,给出每个顾客对应给每个店员的修电脑的时间为Tij,问所有顾客要等待的最少时间。当然,一个顾客在某个店员那里完成之后,那个店员才会执行下一个顾客的任务 Input 第一行T(1≤T≤100),表示T组数据。 接下来T组数据: 每组数据第一行为M,N(1≤M,N≤20)表示店员数和顾客数原创 2016-08-04 10:55:33 · 590 阅读 · 0 评论 -
POJ 2516 Minimum Cost(最小费用最大流-mcmf)
Description 给出N个客户对K个商品的需求量,又给出M个仓库对K个物品的存货量以及对K个物品从i仓库到j客户的一个物品的运费价格,让判断是否可以满足客户需求,如果可以求出最小运费 Input 多组输入,每组用例第一行为三个整数N,M,K分别表示客户数量,仓库数量以及商品种类数,然后为一N*K矩阵表示N个客户对K种商品的需求量,一M*K矩阵表示M个仓库对K种商品的存货量,最后为K个N原创 2015-08-11 15:23:20 · 810 阅读 · 0 评论 -
POJ 2195 && HDU 1533 Going Home(最小费用最大流-mcmf+最大权匹配-KM)
Description 在一个N*M的地图上有若干个人和与其数量相同的房子,每个房子只能容纳一人,每个人移动一格需花费$1,问让所有人都住进房子的最小花费 Input 多组用例,每组用例第一行为两个整数N和M表示地图行列数,之后为以N*M矩阵,’.’表示空地,’H’表示房子,‘m’表示人,以0 0结束输入 Output 对于每组用例,输出使所有人都住进房子的最小花费 Sample In...原创 2015-08-11 15:37:46 · 684 阅读 · 0 评论 -
HDU 3572 Task Schedule(最大流-Dinic)
Description 有M个机器,有N个任务。每个任务必须在Si或者以后开始做,在Ei或者之前完成,完成任务必须处理Pi个时间单位。其中,每个任务可以在任意(空闲)机器上工作,每个机器的同一时刻只能工作一个任务,每个任务在同一时刻只能被一个机器工作,而且任务做到一半可以打断,拿去其他机器做。问能否在规定时间内把任务做完 Input 第一行为一个整数T表示用例组数,每组用例第一行两个整数N和原创 2015-08-11 15:58:35 · 535 阅读 · 0 评论 -
HDU 4309 Seikimatsu Occult Tonneru(最小费用最大流-mcmf)
Description N个点,每个点有初始的人数 ,三种通道 1、隧道:可以用来躲避,有固定的容量,也可以用来传递 2、道路:可以无限的通过 3、桥:不花费的话能通过一人,修之后可以无限通过 问最少花费最大可以隐藏人数。 Input 多组输入,每组输入第一行为两个整数N和M分别表示点数和通道数,第二行N个数表示每个点的初始人数,最后M行每行四个整数U,V,W,P,U和V表示这条通道原创 2015-08-11 16:08:19 · 560 阅读 · 0 评论 -
POJ 3068 "Shortest" pair of paths(最小费用最大流-mcmf)
Description 给一个有向带权图,求两条从0-N-1的路径,使它们没有公共点且边权和最小 Input 多组用例,每组用例第一行为两个整数N和M表示点数和边数,之后M行每行三个整数a,b,c表示a和b间有一条边权为c的边,以0 0结束输入 Output 对于每组用例,如果存在两条没有公共点的从0~N-1的最短路则输出这两条最短路的边权和,否则输出Not possible Samp原创 2015-08-11 16:36:40 · 1286 阅读 · 0 评论 -
HDU 4862 Jump(最小费用最大流-mcmf)
Description 给定一个N*M(10*10)的矩阵,每个格子里有一个数(0-9),每个格子可以一步跳到它右面或者下面的格子,花费费用为两个格子的曼哈顿距离减一。假如起跳的格子和终止的格子里的数相同,那么花费可以减去这个数。问能不能在至多跳K次的情况下,遍历每个格子,且每个格子只被经过一次,如果可以,那么花费的最小费用是多少。 Input 第一行为一个整数T表示用例组数,每组用例第一行原创 2015-08-11 16:56:46 · 845 阅读 · 0 评论 -
HDU 5352 MZL's City(最小费用最大流-mcmf)
Description 给你n个点,m次操作,和整数k 1操作,每次最多可以修复k个属于x所在连通块内的点 2操作,修复x与y之间的路,双向边 3操作,告诉你损坏了一些道路 问根据以上信息,最多修复了多少个点,输出每次修复的点的个数,并使输出的这个序列字典序最小 Input 第一行为一个整数T表示用例组数,每组用例第一行为三个整数n,m,k分别表示点数,操作数和操作一最多可以原创 2015-08-11 18:39:03 · 608 阅读 · 0 评论 -
POJ 2396 Budget(无源汇网络有上下界的可行流-Dinic)
Description 有一个n*m的方阵,里面的数字未知,但是我们知道如下约束条件: 每一行的数字的和 每一列的数字的和 某些格子有特殊的大小约束,用大于号,小于号和等于号表示 问:是否存在用正数填充这个方阵的方案,满足所有的约束,若有,输出之,否则输出IMPOSSIBLE Input 第一行为一个整数T表示用例组数,每组用例第一行为两个整数n和m表示行列数,第二行n个整数表示每行原创 2015-08-12 11:52:27 · 1485 阅读 · 0 评论 -
POJ 3204 Ikki's Story I - Road Reconstruction(最大流-Dinic)
Description 在一个网络里面,问增大哪条边的容量可以使整个网络的流量增大,输出这种边个数 Input 第一行两个整数N和M分别表示点数和边数,之后M行每行三个整数a,b,c表示a到b有一条容量为c的边 Output 输出满足条件的边的个数 Sample Input 2 1 0 1 1 Sample Output 1 Solution 首先对整个网络求最大流得到残余原创 2015-08-13 10:57:27 · 562 阅读 · 0 评论 -
POJ 3469 Dual Core CPU(最小割-Dinic)
Description n个任务,两个机器AB,输入n对数字Ai,Bi表示i号任务在A上消耗和在B上的消耗。,然后再给m行,每行a,b,c三个数字,表示如果a任务和b任务不在一个机器上工作的话,需要额外花费c。问所有任务都工作的情况下的最小花费 Input 第一行两个整数N和M表示任务数和约束数,之后N行第i行两个整数Ai和Bi分别表示i任务在机器A和B上的消耗,最后M行每行三个整数a,b,原创 2015-08-11 15:09:04 · 458 阅读 · 0 评论 -
POJ 1149 PIGS(最大流-Dinic)
Description 话说一个猪圈管理员,他本身没有猪圈的钥匙。每天会有许多顾客来买猪,这些顾客自己带着某些猪圈的钥匙。每当一个顾客来买猪,这些打开的猪圈里的猪可以随意流动,买完猪之后打开的猪圈全部关闭。现在已知每个猪圈里猪的的数量,每一名顾客拥有的钥匙以及他想购买的猪的数量。求管理员可以卖出的最大数量 Input 第一行两个整数M和N分别表示猪圈数和顾客数,第二行M个整数为每个猪圈猪的数原创 2015-08-08 18:52:35 · 479 阅读 · 0 评论 -
HDU 3998 Sequence(LIS+最大流-Dinic)
Description 给出一个长度为n的序列,求其最长上升子序列的长度和满足最长长度的子序列的个数 Input 多组用例,每组用例第一行为一整数n表示序列长度,第二行n个整数表示该序列,以文件尾结束输入 Output 对于每组用例,第一行输出最长上升子序列长度,第二行输出不同的最长上升子序列个数 Sample Input 4 3 6 2 5 Sample Output 2 2原创 2016-03-31 11:13:51 · 527 阅读 · 0 评论 -
ZOJ 3229 Shoot the Bullet(有源汇有上下界最大流)
Description A要给m个人拍照片,第x个人至少要拍Gx张照片,整个拍摄过程要分n天进行,第k天要给给定的Ck个人拍,代号分别为Tk1, Tk2…..,TkCk,这一天给他们拍的照片数有限制,范围是[Lki,Rki],同时这一天也有拍照总数限制Dk。求满足所有要求的情况下,能拍的最多照片数。若无解则输出-1。 Input 多组用例,每组用例第一行为两个整数n和m表示拍摄天数和拍摄人数,原创 2016-03-02 09:17:50 · 504 阅读 · 0 评论 -
SGU 194 Reactor Cooling(无源汇有上下界最大流)
Description 给n个点,及m根管子,每根管子用来流某种液体,管子是单向的,每时每刻每根管子流进来的物质要等于流出去的物质,要使得m条管子组成一个循环体,里面流液体。并且满足每根管子一定的流量限制,范围为[Li,Ri].即要满足每时刻流进来的不能超过Ri(最大流问题),同时最小不能低于Li。保证没有自环,两相邻点间最多有一根管子。问这个循环体是否存在,如果存在则输出每个管子里的流量,不存在原创 2016-03-02 09:17:41 · 694 阅读 · 0 评论 -
POJ 1273 && HDU 1532 Drainage Ditches(最大流-Dinic)
Description FJ要把水从池塘引到小溪,在其间,有M个点和N条渠,渠连接点,渠有流量限制,问最多可以从池塘流多少水到小溪? Input 多组输入,每组输入第一行为两个整数M和N分别表示渠数和点数,之后M行每行三个整数a,b和c表示a点到b点有一条流量为c的渠,以文件尾结束输入 Output 对于每组用例,输出能从池塘(编号1)到小溪(编号N)最多流水量 Sample Inpu原创 2015-08-08 09:10:56 · 569 阅读 · 0 评论 -
POJ 2112 Optimal Milking(最大流-Dinic+Floyd+二分)
Description 有K台挤奶机(编号1~K),C头奶牛(编号K+1~K+C),都视为点,现在要让C头奶牛到挤奶机去挤奶,每台挤奶机只能处理M头奶牛,求使所走路程最远的奶牛的路程最短的方案 Input 第一行三个整数K,C,M分别表示挤奶机数量,奶牛数以及每台挤奶机能够处理的奶牛数,之后为以(K+C)*(K+C)矩阵表示奶牛与挤奶机之间的距离矩阵 Output 输出最小奶牛路程最大值原创 2015-08-08 09:24:50 · 879 阅读 · 0 评论 -
POJ 3281 Dining(最大流-Dinic)
Description 有N头牛,F种食物,D种饮料,第i头牛喜欢Fi种食物,Di种饮料,已知一头牛最多能吃一种食物和一种饮料,每种饮料或食物最多能被一头牛吃,求以上条件下,最多能有多少头牛能吃到他所喜爱的食物和饮料 Input 第一行为三个整数N,F,D分别表示牛数,食物数和饮料数,之后N行第i行为第i头牛的喜好,每行首先为两个整数f和d表示该头牛喜欢的食物数和饮料数,然后f个数表示其喜欢原创 2015-08-08 09:41:44 · 509 阅读 · 0 评论