网络流做题笔记(不断更新)。。。

POJ 3686 费用流或KM。一个工厂接到了N张订单。他们有M个车间,如果第i张单在第j个车间加工需要花费Zij的时间。现在给出这个Z的矩阵,问做完这N张单需要时间的平均值(总时间/N)包括等待时间。(比如说我在一个车间连续以1个时间单位接了3张单,那么总时间为1+2+3=6,平均值为6/3=2)(N,M<=50)

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=13496

HDU 2686 拆点+费用流 一个矩阵,你从左上角出发,然后每次可以往下或右走一格,然后取走格子里的数字,然后到达右下角,然后再返回左上角,走法必须是往上走一格或往左走一格,也是取走格子里的数字,现在要求一个取到最大数字的方案。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12365

HDU 1853 拆点+费用流 Little Tom要“环”游一些城市,每个城市只能游玩一次。现在给出一张有向图和每条边的费用。求最小费用。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=13263

POJ 3436 最大流 有一些机器用来组装电脑,每台机器对输入机器的电脑有要求,符合要求的电脑被送入机器后会输出一台规定配件情况的电脑。而且分别告知每台机器在单位时间内处理电脑的台数。将这些机器连成生产线,问单位时间内出产的具有所有配件的电脑最多有多少台。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=13253

POJ 3308 最小割+取对数 火星人要攻打地球,火星人将派来一些伞兵来破坏军事设施。已知他们将降落在一个矩阵行的地区,而且知道这些人会降落在哪一行那一列。现在地球人可以造一些大炮来攻击他们,一门大炮可以攻击一行或者一列,一个伞兵只要被他所在的行或列的大炮打中他就会挂,而在每一行、每一列造大炮的价格是不同的,建造大炮总价格等于你选择在某行或某列造大炮价格的乘积。现在要求把所有的伞兵都搞挂了并且让这个价格尽可能的小。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=13233

POJ 3084 最小割:有m个房间,你需要保护第n个房间使得其不被攻入。房间与房间之间会有门,门上有机关,因此当门关上时,只能从一边进入另外一边而不能从相反方向进入。现在告诉你这n个房间以及门的分布情况,以及开始的时候哪些房间里有贼,问至少关掉几个门使得房间n不被攻入。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=13107

POJ 2125 最小点权覆盖:给出一张有可能自环、重边的有向图。每个节点i上都有两个值Wi+,Wi-,分别表示删掉所有i点的入边需要的代价和删掉所有i点的出边需要的代价。现在要求把所有的边全部删掉,求最小代价。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=13055

HDU 3435 KM或费用流:给出一张有n个点m条边带权的无向图,要你找出若干个回路并且使得所有的点都在某个哈密顿回路上,且所有的点只能出现在一个哈密顿回路中,求由n条边组成的若干回路的最小权值。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12948

HDU 3488 KM或费用流:给出一张有n个点m条边带权的有向图,要你找出若干个回路并且使得所有的点都在某个回路上,且所有的点只能出现在一个回路中,求由n条边组成的若干回路的最小权值。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12945

HDU 3996 最大闭合子图:挖金矿。一个矿有n层,每层有m块金子。要挖每块金子都有一个代价cost,每块金子都有一个价值cost,另外每块金子还有w个关系,表示如果要挖它,必须先挖掉第i层的第j块金子,求最大获利。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12932

HDU 3879 最大闭合子图:有n个城市。现在需要在这些城市上修一些通信的基站,在每个城市上修一个基站都需要花费一定的费用。另外给出m个组合(a,b,c),表示如果第a个城市和第b个城市都修起了基站,那么公司可以获利c。但公司并不需要在每个城市都修基站,他们只希望自己能够获得最大的利益。问最大利益。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12884

HDU 2435 最小割+枚举:给出一张n个点m条边的有向图。现在编号为1的城市想进攻编号为n的城市。n为了防御1的进攻,需要破坏一些道路使得1到n不连通,而破坏每条路都有一个代价,题目会告诉你。现在编号为1的城市想要让编号为n的城市花费尽量多的代价来破坏道路使得1到n不连通,因此他们可以在2-n中的任意城市间修一条无坚不摧的桥(这条桥既可以是原来存在的也可以是原来不存在的),问n花费的最大代价。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12874

HDU 3987 最小割前提下求最小的割边数量:给出一张有n个点的图,有的边又向,有的边无向,现在要你破坏一些路,使得从点0无法到达点n-1。破坏每条路都有一个代价。求在代价最小的前提下,最少需要破坏多少条道路。(就是说求在最小割的前提下,最小的割边数)

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12831

HDU 3452 最小割(或者树形DP):给出一颗树和树根,每条树边都有边权,要你砍断一些边,使得所有的叶子节点都与根节点分离,且要求砍断的边权之和最小。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12812

HDU 3251 最小割:一个国家的地图是一张n个点m条边的有向图。你保卫了国家成为了英雄,现在国王答应给你一些城市。国王居住在首都,编号为1,但他不想随意的到达你的领地,所以你必须破坏一些路,使得从首都到你所拥有的所有城市不连通。而破坏这些路需要花钱。国王给了你f个城市供你选择,每个城市有一个价值。你最后的总收益=你选择的城市的价值之和-破坏路花费的钱。现在让你输出最大的收益,以及完成这样的收益应该破坏哪些路。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12801

HDU 3313 最小割或BFS:给出一张有向图。如果一个节点在图中被删除后,就能使得从S->T不连通,则称这个点key vertex。问这张图中有多少个点是key vertex。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12799

HDU 3491 最小割:给出一张无向图,每个点上都有一个权值,然后让你删掉权值之和尽量小的点,使得S到H不连通。无向图带权点连通度问题。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12792

HDU 3820 最小割(二分图点权覆盖):有一个n*m的矩阵,里面可以放金蛋也可以放银蛋。分别给出在2个矩阵map1,map2表示在矩阵的每个格子里放金蛋的得分和放银蛋的得分。如果相邻的两个格子里都放了金蛋,则总得分要减去G,如果相邻的两个格子里都放了银蛋,则总得分要减去S。现要求你求出放蛋的最大得分。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12790

HDU 3657 最小割(二分图点权覆盖): 给定一个 n * m 大小的矩阵, 矩阵中每个格子都有一个不大于 1000 的正整数, 现在要从矩阵中选出若干个格子, 使得得分最大. 得分等于选取的格子里的数字和. 如果有两个格子相邻, 则得分将减去 2 * (x & y), x 和 y 为相邻两个格子内的数字. 此外, 还有一些格子是必选的.

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=7393

POJ 1657 混合图欧拉回路

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=9056

HDU 3472 混合图欧拉路径:有个人有一种记单词方法,如果一个单词的最后一个字母和另外一个单词的首字母相同,他就同时可以记住,现在他想按照这样的规则把n个单词串起来(就是一个单词的最后一个字母和另外一个单词的首字母相同),有些单词的回文串也是有意义的,因此他既可以正着记,也可以倒着记,现在问他能不能调整那些回文串有意义的单词的正序逆序把这n个单词串起来。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12754

HDU 3046 最小割:给出一个N*M的矩阵,0表示空地,1表示有一只羊,2表示有一只狼,你可以再图上方格的边缘添加单位长度为1的栅栏使得任意的动物都不能通过。问最少添加多少个单位长度为1的栅栏使得狼抓不到羊。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12746

HDU 4265 最大流+匹配方案输出:有n个人n个位置。给出一个n*n的矩阵,第i行第j列表示第i个人可以做第j个位置。现在要求每个人都找到一个不同的位置,当他们全部找到各自的位置时,一轮结束,他们可以开始新的一轮。在新的一轮里,每个人同样会去找位置,但是每个人都不会去找原先已经坐过的位置。问一共可以进行多少轮这样的匹配,并输出每一轮的匹配方案。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12739

HDU 4309 最大流+状态枚举:给出一张N(N<=100)个点,M(M<=1000条)边的有向图。每个点上都有一些人。每条边有4个属性(u,v,w,p)。这些边分为三种:(1)p<0时,表示这条边是隧道,这条隧道从u连向v,虽然如果想通过这条隧道的话没有流量限制,但可以最多只容纳w人;(2)p=0时,这条边是道路,由u连向v,通过没有流量限制;(3)p>0时,表示这条边是古老的桥,u连向v,如果不修这座桥,则只能通过1人,但是如果花费w的费用修桥的话,则通过这座桥的流量便没有限制。桥的总数<12。求使得最多的人能够躲到隧道里时候的人数和在该情况下的最小费用。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12737

HDU 3461 最大流+最短路:给出一张n个点m条边的无向图( 2<=n<=1000, 0<=m<=100000 )和起点S、终点T。现在要求你每次从S出发都使用一条最短路到达T,并且每条路只能走一次。问最多可以从S走到T走几次最短路。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12726

HDU 3277 最大流+floyd闭包+二分+拆点:有N个男孩,N个女孩。每个女孩可以选择一个没有跟他吵过架的男孩结婚。如果女孩X和女孩Y是朋友,且Y没有和男孩Z吵过架,女孩X同样可以选择男孩Z和自己结婚。另外,如果A和B是朋友,B和C是朋友,那么A和C也必定是朋友。每一轮中,每个女孩还可以额外选择K个自己原本不打算和她配对的男孩配对。一旦所有的女孩都找到了男友,那么他们就可以开始一轮新的游戏了,在每一轮新的游戏中,他们将使用相同的规则进行游戏,但是所有的女孩都不会选择之前选择过的男友了。问他们最多可以进行几轮游戏。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12724

HDU 3081 最大流+floyd闭包+二分:有N个男孩,N个女孩。每个女孩可以选择一个没有跟他吵过架的男孩结婚。如果女孩X和女孩Y是朋友,且Y没有和男孩Z吵过架,女孩X同样可以选择男孩Z和自己结婚。另外,如果A和B是朋友,B和C是朋友,那么A和C也必定是朋友。一旦所有的女孩都找到了男友,那么他们就可以开始一轮新的游戏了,在每一轮新的游戏中,他们将使用相同的规则进行游戏,但是所有的女孩都不会选择之前选择过的男友了。问他们最多可以进行几轮游戏。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12727

HDU 4292 最大流:水题。两种资源一种需求。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12722

HDU 4322 最大流:老师要把N颗糖分给M个小盆友,M*N的矩阵中的元素(i,j)表示第i个小孩对第j颗糖的喜好,1表示喜欢,0表示不喜欢。如果一个小朋友得到了一颗糖,并且这颗糖是自己喜欢的糖,他会得到K个glad值,否则,只能得到1的glad值。现在告诉你每个小朋友i的glad值要达到B[i]才会开心,问是否存在一种分配方案使得所有的小朋友都能够开心。(1<=N<=13, 1<=M<=13, 2<=K<=10)

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12718

HDU 4183 最大流:水面上有很多的圆形区域,他们要么存在相交的区域,要么不存在相交的区域,不会存在相切的情况。每个区域都有颜色,并且告诉你每个区域颜色的频率。现在要求你从唯一的一个红色区域(频率最小)走到紫色区域(频率最大)并从紫色区域返回红色区域。并且必须遵循以下三个规则:(1)从红色走到紫色的时候,必须从频率小的区域走向频率大的区域。(2)从紫色走到红色的时候,必须从频率大的区域走向频率小的区域。(3)除了初始的红色区域,你每离开一个区域的时候,那个区域都会消失。问你是否存在一个合法的方式。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12717

POJ 1815 最小点割集+枚举:在给定的一张无向图中,问你最少删掉多少个点,使得从S->T不连通,并要求按序输出这些点的标号。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=11215

POJ 1149 最大流:经典的建图+简化建图的三条规律。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=9005

POJ 2987 最大闭合子图

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=8943

POJ 1637 混合图的欧拉回路:给出一张图,其中有的边有向,有的边无向,问是否能够确定一些无向边的方向,使得原图中存在欧拉回路。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=9056

POJ 2699 最大流(与胜负关系有关)+枚举:有N(N<=10)个人,有一些有向边(u,v)表示u能打败v,先给出每个队的获胜场数,一个选手被称为strong king当且仅当他的获胜场数最多或者打败了所有获胜场数多于自己的对手,问最后有几个strong king。要搞清楚每条边的物理意义和最大流的物理意义是什么。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=11992

POJ 2391 最大流+二分:给出一张F个点P条路径的带权无向图,权值代表走这条路的时间。每个点F上现在有a头牛,而每个点最多可容纳b头牛,问是否存在一种调整方案使得所有的点上存在的牛数少于该点容纳牛数的上限,如果可以,输出最短时间,否则,输出-1。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12600

HDU 3998 最大流+最长公共子序列DP:给出一个n个数字的序列,求最长上升子序列长度,并求出最多可以找出多少个最长上升子序列(每个位置上的数字只能在找出的序列中出现一次)

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12633

HDU 3572 最大流:有N个任务和M台机器。对于每个任务i,它必须在第Si天或之后开始执行,完成这个任务需要Pi天,并且必须在第Ei天或其之前完成。一台机器在同一时间段内只能做一个任务,一个任务在同一时间段内也只能被一台机器执行。任务可以被打断执行,可以在不同的时间在不同的机器上进行。现在给出这些数据,问是否有可行的调度方案。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12636

HDU 3338 最大流+确定流的分配方案:Orz神题。

题意+代码:http://www.cnblogs.com/zhexipinnong/p/3386959.html

HDU 3605 最大流+状态压缩:n(n<=10^5)个人,m(m<=10)个星球,给你一个矩阵,告诉你第i个人是否可以逃到第j个星球上(输入略坑。。貌似是倒着来的),然后告诉你每个星球上最多可以容纳多少人,要你判断这n个人是否能够全部被转移到这m个星球上。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12657

POJ 1966 最小割(无向图不带权的点连通问题)题意:给出一张n个点m条边无向图,问最少删几个点使得原图非连通。无向图不带权的点连通问题。拆点,对每个点i,对应边(i,i',1),对原图中的每条边(i,j),对应两条正向边(i',j,inf),(j',i,inf),选定任意一个源点S',枚举所有汇点T,跑最大流,对最小的最大流ans,如果ans=inf,则答案就是n,否则答案是ans。

代码:http://122.207.68.93:9090/csuacmtrain/problem/viewSource.action?id=12712

posted @ 2013-10-23 14:45  浙西贫农  阅读(389)  评论(0编辑  收藏  举报