POJ 1698 | 题意:有N部电影,分别可以在一个星期的几天拍摄,并可以拍W个星期,Alice可以有D个星期拍这部电影,一天只能拍一部电影。问Alice能否拍完所有电影。 构图:把日程表上所有的点弄出来,如果电影能在这天拍摄,则从电影I向这天连容量为1的边。源点向每一部电影连容量为D的边。每一天向汇点连一条容量1的边。做最大流,若等于sum{d[i]}则可以,否则不可以。 |
POJ 2112 | 题意:有K台挤奶机(编号1~K),C头奶牛(编号K+1~K+C),给出各点之间距离。现在要让C头奶牛到挤奶机去挤奶,每台挤奶机只能处理M头奶牛,求使所走路程最远的奶牛的路程最短的方案。 构图:先Floyd求所有点对之间最短路,二分最短长度,若奶牛与挤奶机之间的距离大于mid则不连边,否则连容量为1的边。源向挤奶机连容量M的边,奶牛向汇连容量1的边,用最大流判可行性。 |
POJ 2455 | 题意:有N个农场,P条无向路连接。要从1到N不重复走一条路地走T次,求所经过的直接连接两个区域的道路中最长道路的最小值。 构图:源点向1连容量T的边。二分最小长度,长度超过mid的边容量为0,否则为1,用最大流判可行性。 |
POJ 1149 | 题意:有M个猪圈和N个顾客,最初猪圈是锁着的。每个顾客有其中的A把钥匙,需要买B头猪,顾客在买完猪便将门锁上,而且顾客是按照顺序来的。商家可以对开着的猪圈里面的猪进行任意调配,问最多可以卖出几头猪。 构图:若该顾客是第一个来这个猪圈,则源向这个点连容量为猪圈猪数的边,否则从第一个来这个猪圈的顾客向他连容量无穷大的边,最大流。 |
POJ 2391 | 题意:F个地区。已知各个地区之间的行走时间。每个地区I有两个属性: 这个地区当前牛的个数,下雨的时候这个地区实际能够容纳牛的个数。 问至少需要多少时间,使所有的牛在下雨的时候都能够被容纳。 构图:先Floyd求所有点对之间最短路。二分最短时间,源向I连容量为初始牛数的边,I’向汇连容量为所能容纳牛数的边,I向I’连容量无穷大的边,若I,J能够在mid时间内到达,则连无穷大的边,用最大流判可行性。 |
POJ 2135 | 题意:给出一个无向图,求从1到N走两次的最短路,每条路不能重复走。 构图:S向1连容量2,费用0的边,N向T连容量2,费用0的边,节点间连容量1,费用为边权的边。一次费用流。 |
POJ 2195 | 题意:二分图最小权匹配。 构图:S向左边的点连容量1,费用0的边,右边的点向T连容量1,费用0的边,点之间连容量1,费用为边权的边。最小费用最大流。 |
POJ 2516 | 题意:有N个客户,M个仓库,和K种货物。已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用。判断所有的仓库能否满足所有客户的需求,如果可以,求出最少的运输总费用。 构图:K次最小费用最大流。过程中如果有最大流小于总需求则可判不可行。 |
POJ 3281 | 题意:有N头牛,F种食物,D种饮料,第I头牛喜欢Fi种食物,Di种饮料 已知一头牛最多能吃一种食物和一种饮料,每种饮料或食物最多能被一头牛吃,求以上条件下,最多能有多少头牛能吃到他所喜爱的食物和饮料。 构图:S向每种食物连容量1的边,每种食物向喜爱它的牛连容量1的边,将牛拆点,I向I’连容量1的边,I’向它喜爱的饮料连容量1的边,每种饮料向T连容量1的边。最大流。 |
POJ 3469 | 题意:第i个module在两个核的运行时间分别为ai、bi,两个module之间的数据交换要有花费(A,B,W)。求最小花费。 构图:转化为最小割。S向I连AI的边,I向T连BI的边,A、B,B、A之间连W的边。求最大流。SAP要加当前弧优化。 |
POJ 3614 | 题意:N头牛,第I头需要一个SPF的范围是MinSPF~MaxSPF,m个bottle,每个bottle能给C头牛提供定值为P的SPF,求最多有多少头牛可以得到合适的SPF. 构图:T向Bottle连容量C的边,若Bottle能给Cow提供合适的SPF,则连容量1的边,COW向T连1的边。一次最大流。 |
POJ 3680、POJ 3762 | 题意:题目大意是给一些区间,有权值的,求每段覆盖的区间不超过K个时最大权值是多少。 构图:将所有的点排序去重后,得到M个点,S为0,T为M+1,从1到M分别从I向I+1连容量K,费用0的边。对于原来的线段,找到其起点重点在点集中的位置,从ST到ED连容量1,费用为边权的边。最小费用最大流。 |
POJ 2987 | 题意:最大权闭合图。 构图:S向正权点连容量为W的边,负权点向T两容量为-W的边,原来图中的点间连容量无穷大的边。Sum{正权}-Maxflow 即最大权。 题目求删除最少的点数,只需对残量网络深搜一次即可。 |
POJ 1637 | 题意:混合图欧拉回路 构图:有向边忽略,无向边任意定向。统计每个点的出入度(有向边当无向边)。 对于任意一个点,若有出入度之差为奇数则不可能存在欧拉路。 记|出度-入度|=K。 对于出度大于入度的点从S向I连容量为K/2的边,对于出度小于入度的点从I向T连容量为K/2的边。 原来的无向边,任意定向,从X向Y连容量1的边。 求最大流,判每条从S流出的边和流入T的边是否满流,是则存在欧拉路否则不存在。 |
POJ 3498 | 题意:二维整数坐标系上有n块浮冰, 每块上有Ni只企鹅, 企鹅每次最多跳d个单位远, 浮冰有耐久度Mi, 每有一只企鹅从它上面起跳, 浮冰的耐久-1, 减到0浮冰就消失, 现在企鹅要跳到同一块浮冰上, 问企鹅可能最终聚集在哪些浮冰上。 构图:将点容量限制转化为边容量限制。拆点。 S向I连容量Ni的边,I向I’连容量Mi的边。对于I能在一步内到达的J,从I’向J连容量∞的边(这样I要经过J必须受Mj容量限制)。枚举T求最大流判可行性。(题中浮冰编号0~N-1) |
POJ 3422 | 题意:K取方格数 构图:拆点。每个点I向I’连两条边,一条容量1,费用为点权,另一条容量∞,费用0。每个点向右边、下边的点连容量∞,费用0的边。S向(1,1)连边,(N,N)向T连边。最大费用最大流。 |
POJ 3189 | 题意:N头牛(1000),B个农场(20),每个农场可以容纳一定数量的牛。 每头牛对每个农场都有一个排名(排名从1~B)。每头牛都会在B个农场中的某一个,这头牛的高兴程度是它对这个农场的排名。为了使每头牛都尽量同等高兴,希望所有牛中最高兴的和最不高兴的程度差值最小,求这个差值。 构图:二分最小差,对每一个最小差,枚举起点、终点。最大流判可行性。 |
POJ 3204 | 题意:0为源,N-1为汇的图,求给哪些边加容量可以增大最大流。 构图:直接构图,做完最大流以后,分别从S,T开始沿着残余容量为正值的边,对残量网络DFS。最后枚举残余容量为0的边,看是否能从S,T都到达它。 |