网络流经典题(含部分其他图论题)

合集下载

网络流题目

网络流题目

[PKU 3281]Dining(构图+网络流)题目大意】就是有n个牛,有f种食物和d种饮料,每个牛喜欢一个或多个食物和饮料,但是所有的食物和饮料每种都只有一个,问最多可以满足多少头牛的需要。

【题目分析】其实这个是很简单的,很明显的网络流模型,构图方法是把一头牛拆成两个点,两边分别是食物和饮料,然后把食物和左面的那一排牛连接在一起,右面的那一排牛和饮料连接在一起,两头牛拆开的点之间再连一条边。

加上超级源点和所有食物相连,所有饮料和超级汇点相连。

所有边上的容量都是1。

然后求最大流就可以了。

【代码(P.S.一次AC,HOHO~)】:program PKU_3281;varn,f,d,x,y,i,j,p,nn,s,t,delta,min,minj,tot:longint;g:array[0..401,0..401] of longint;dis,his,vh,di,pre:array[0..402] of longint;flag:boolean;beginassign(input,'a.in');assign(output,'a.out');reset(input); rewrite(output);readln(n,f,d);for i:=1 to n dobeginread(x,y);for j:=1 to x dobeginread(p);g[p,f+i]:=maxlongint;end;for j:=1 to y dobeginread(p);g[f+n+i,f+2*n+p]:=maxlongint;end;g[f+i,f+n+i]:=1;end;for i:=1 to f dog[0,i]:=1;for i:=1 to d dog[f+2*n+i,f+2*n+d+1]:=1;nn:=f+2*n+d+1;vh[0]:=nn+1;for i:=0 to nn do di[i]:=0;s:=0; t:=nn;i:=s; delta:=maxlongint; tot:=0;while dis[s]0) and (dis[j]+1=dis[i]) then beginflag:=true;pre[j]:=i;di[i]:=j;if g[i,j]<delta then delta:=g[i,j];i:=j;if i=t thenbegininc(tot,delta);x:=t; y:=pre[x];while xs dobegindec(g[y,x],delta);inc(g[x,y],delta);x:=pre[x]; y:=pre[y];end;i:=s; delta:=maxlongint;end;break;end;if flag then continue;min:=nn;for j:=0 to nn doif (g[i,j]>0) and (min>dis[j]) thenbeginmin:=dis[j];minj:=j;end;di[i]:=minj;dec(vh[dis[i]]);if vh[dis[i]]=0 then break;dis[i]:=min+1;inc(vh[dis[i]]);if is thenbegini:=pre[i];delta:=his[i];end;end;writeln(tot);close(input); close(output);end.[PKU 1149]PIGS(网络流+构图)题目描述:说有一个人有好几猪圈的猪,给你猪圈中猪的个数。

网络流例题详解

网络流例题详解

网络流例题详解最大流 sap用法和模板typedef struct node{int v, w;struct node *nxt, *op;}NODE;NODE edg[MM]; // 保存所有的边NODE *link[NN]; // 记录节点所在链表的首节点int h[NN]; // 距离标号,记录每个点到汇点的距离,这里的距离指的是层数int num[NN]; // gap优化,标号为i的顶点个数int M, N, idx, S, T, n; // S 表示源点,T表示汇点,n表示节点个数void add(int u, int v, int c){idx++;edg[idx].v = v;edg[idx].w = c;edg[idx].nxt = link[u];edg[idx].op = edg + idx + 1;link[u] = edg + idx;idx++;edg[idx].v = u;edg[idx].w = 0;edg[idx].nxt = link[v];edg[idx].op = edg + idx - 1;link[v] = edg + idx;}int Min(int a, int b){return a < b ? a : b;}int aug(int u, int flow){if (u == T) return flow;int l = flow; // l表示剩余容量int tmp = n - 1;for (NODE *p = link[u]; p; p = p->nxt){if (h[u] == h[p->v] + 1 && p->w){int f = aug(p->v, Min(l, p->w));l -= f;p->w -= f;p->op->w += f;if (l == 0 || h[S] == n) return flow - l; // gap}// 这里是有剩余容量的可行边if (p->w > 0 && h[p->v] < tmp){tmp = h[p->v];}}if(l == flow){// 如果没有找到增流,才修改标号,刚开始写错了,也杯具的过了好多题num[h[u]]--; // gapif (num[h[u]] == 0) h[S] = n; // gap,每个点的距离值最多为n - 1,这里设为n 表示断层了else{h[u] = tmp + 1;num[h[u]]++; // gap}}return flow - l;}/*n表示总点的个数,包括源点和汇点*/void sap(){int ans = 0;memset(h, 0, sizeof(h)); // h 保存的是距离标号(到汇点的)memset(num, 0, sizeof(num));num[0] = n;while(h[S] < n){ans += aug(S, INF);}printf("%d\n", ans);}pku1149 最大流(EK算法)用EK就能做。

网络流题目集锦

网络流题目集锦

(2010-02-07 18:00:40)转载分类:ACM标签:杂谈最大流POJ 1273 Drainage DitchesPOJ 1274 The Perfect Stall (二分图匹配)POJ 1698 Alice's ChancePOJ 1459 Power NetworkPOJ 2112 Optimal Milking (二分)POJ 2455 Secret Milking Machine (二分)POJ 3189 Steady Cow Assignment (枚举)POJ 1637 Sightseeing tour (混合图欧拉回路)POJ 3498 March of the Penguins (枚举汇点)POJ 1087 A Plug for UNIXPOJ 1149 Pigs (构图题)ZOJ 2760 How Many Shortest Path (边不相交最短路的条数)POJ 2391 Ombrophobic Bovines (必须拆点,否则有BUG)WHU 1124 Football Coach (构图题)SGU 326 Perspective (构图题,类似于 WHU 1124)UVa 563 CrimewaveUVa 820 Internet BandwidthPOJ 3281 Dining (构图题)POJ 3436 ACM Computer FactoryPOJ 2289 Jamie's Contact Groups (二分)SGU 438 The Glorious Karlutka River =) (按时间拆点)SGU 242 Student's Morning (输出一组解)SGU 185 Two shortest (Dijkstra 预处理,两次增广,必须用邻接阵实现,否则 MLE) HOJ 2816 Power LinePOJ 2699 The Maximum Number of Strong Kings (枚举+构图)ZOJ 2332 GemsJOJ 2453 Candy (构图题)SOJ3312 Stockholm KnightsSOJ3353 Total FlowSOJ2414 Leapin' Lizards最小割SOJ3106 Dual Core CPUSOJ3109 Space flightSOJ3107 SelectSOJ3185 Black and whiteSOJ3254 Rain and FgjSOJ3134 windy和水星 -- 水星交通HOJ 2634 How to earn moreZOJ 2071 Technology Trader (找割边)HNU 10940 CoconutsZOJ 2532 Internship (找关键割边)POJ 1815 Friendship (字典序最小的点割集)POJ 3204 Ikki's Story I - Road Reconstruction (找关键割边) POJ 3308 ParatroopersPOJ 3084 Panic RoomPOJ 3469 Dual Core CPUZOJ 2587 Unique Attack (最小割的唯一性判定)POJ 2125 Destroying The Graph (找割边)ZOJ 2539 Energy MinimizationTJU 2944 Mussy Paper (最大权闭合子图)POJ 1966 Cable TV Network (无向图点连通度)HDU 1565 方格取数(1) (最大点权独立集)HDU 1569 方格取数(2) (最大点权独立集)POJ 2987 Firing (最大权闭合子图)SPOJ 839 Optimal Marks (将异或操作转化为对每一位求最小割)HOJ 2811 Earthquake Damage (最小点割集)2008 Beijing Regional Contest Problem A Destroying the bus stations ( BFS 预处理 )( ZOJ 2676 Network Wars (参数搜索)POJ 3155 Hard Life (参数搜索)ZOJ 3241 Being a Hero有上下界ZOJ 2314 Reactor Cooling (无源汇可行流)POJ 2396 Budget (有源汇可行流)SGU 176 Flow Construction (有源汇最小流)ZOJ 3229 Shoot the Bullet (有源汇最大流)HDU 3157 Crazy Circuits (有源汇最小流)最小费用流HOJ 2715 Matrix3HOJ 2739 The Chinese Postman ProblemPOJ 2175 Evacuation Plan (消一次负圈)POJ 3422 Kaka's Matrix Travels (与 Matrix3 类似)POJ 2516 Minimum Cost (按物品种类多次建图)POJ 2195 Going HomeBUAA 1032 Destroying a PaintingPOJ 2400 Supervisor, Supervisee (输出所有最小权匹配)POJ 3680 IntervalsHOJ 2543 Stone IVPOJ 2135 Farm TourBASHU2445 餐巾问题---------------------------------------------onmylove原创最大流题目:TC:Single Round Match 200 Round 1 – Division I, Level Three Single Round Match 236 Round 1 – Division I, Level ThreeSingle Round Match 399 Round 1 – Division I, Level Three 同Hoj1024:2003 TCO Semifinal Round 4 – Division I, Level Three 2004 TCCC Championship Round – Division I, Level Three 2005 TCO Sponsor Track Round 3 – Division I, Level One混合图的欧拉回路Poj1637: :求增广边:Poj3204:类似:Hoj1082: &pid=6pku图论、网络流入门题总结、汇总(2009-10-07 23:25:25)转载分类:acm_图论题标签:杂谈POJ 2449 Remmarguts' Date(中等)题意:经典问题:K短路解法:dijkstra+A*(rec),方法很多相关:该题亦放在搜索推荐题中POJ 3013 - Big Christmas Tree(基础)题意:最简单最短路,但此题要过,需要较好的程序速度和,还要注意精度解法:DijkstraPOJ 3463 - Sightseeing(中等)题意:最短路和比最短路大1的路的数量解法:需要真正理解dijkstraPOJ 3613 - Cow Relays(较难)题意:求经过N条边的最短路解法:floyd + 倍增,贪心POJ 3621 - Sightseeing Cows(中等)题意:求一个环路,欢乐值 / 总路径最大解法:参数搜索 + 最短路(ms 原始的bellman tle, 用spfa才过) POJ 3635 - full tank?(中等)题意:最短路变形解法:广搜相关:生成树问题基本的生成树就不放上来了POJ 1639 - Picnic Planning(较难)题意:顶点度数有限制的最小生成树解法:贪心 + prim/kruskalPOJ 1679 - The Unique MST(基础)题意:判断MST是否唯一解法:prim就行,不过还是易错的题POJ 2728 - Desert King(中等)题意:所谓最优比率生成树解法:参数搜索 + primPOJ 3164 - Command Network(难)题意:最小树形图解法:刘朱算法,这个考到的可能性比较小吧?POJ 3522 - Slim Span(基础)题意:求一颗生成树,让最大边最小边差值最小解法:kruskal活用连通性,度数,拓扑问题此类问题主要牵扯到DFS,缩点等技巧POJ 1236 - Network of Schools(基础)题意:问添加多少边可成为完全连通图解法:缩点,看度数POJ 1659 - Frogs' Neighborhood(基础)题意:根据度序列构造图解法:贪心,详细证明参见havel定理POJ 2553 - The Bottom of a Graph(基础)POJ 2186 - Popular Cows(基础)题意:强连通分量缩点图出度为0的点POJ 2762 - Going from u to v or from v to u?(中等)题意:单向连通图判定解法:缩点 + dp找最长链POJ 2914 - Minimum Cut(难)题意:无向图最小割解法:Stoer-Wagner算法,用网络流加枚举判定会挂POJ 2942 - Knights of the Round Table(难)题意:求双联通分量(或称块)中是否含奇圈解法:求出双连通分量后做黑白染色进行二分图图判定相关: 3177 - Redundant Paths(中等)POJ 3352 - Road Construction(中等)题意:添加多少条边可成为双向连通图解法:把割边分开的不同分量缩点构树,看入度建议对比下1236,有向图添加多少条边变成强连通图POJ 3249 - Test for Job(基础)解法:bfs / dfs + dpPOJ 3592 - Instantaneous Transference(基础)解法:缩点,最长路,少人做的水题,注意细节POJ 3687 - Labeling Balls(中等)解法:拓扑排序POJ 3694 - Network(中等)解法:双连通分量+并查集2-SAT问题此类问题理解合取式的含义就不难POJ 2723 - Get Luffy Out(中等)POJ 2749 - Building roads(较难)解法:二分 + 2-SAT判定POJ 3207 - Ikki's Story IV - Panda's Trick(基础) 解法:简单的2-sat,不过其他方法更快POJ 3648- Wedding(中等)解法:用2-sat做会比较有意思,但是暴搜照样0ms POJ 3678 - Katu Puzzle(基础)解法:直接按合取式构图验证就行了POJ 3683 - Priest John's Busiest Day(中等)解法:n^2枚举点之间的相容性构图,求解2-SAT最大流问题变形很多,最小割最大流定理的理解是关键POJ 1149 - PIGS(较难)绝对经典的构图题POJ 1273 - Drainage Ditches(基础)最大流入门POJ 1459 - Power Network(基础)基本构图POJ 1637 - Sightseeing tour(Crazy)题意:求混合图的欧拉迹是否存在解法:无向边任意定向,构图,详建黑书P324POJ 1815 - Friendship(中等)题意:求最小点割解法:拆点转换为边割相关: 1966 - Cable TV Network(中等)题意:去掉多少点让图不连通解法:任定一源点,枚举汇点求点割集(转换到求边割),求其中最小的点割POJ 2112 - Optimal Milking(基础)二分枚举,最大流POJ 2391 - Ombrophobic Bovines(中等)题意:floyd, 拆点,二分枚举相关: 2396 - Budget(中等)题意:有源汇的上下界可行流解法:用矩阵-网络流模型构图,然后拆边相关:,最小割模型在竞赛中的应用POJ 2455 - Secret Milking Machine(基础)二分枚举,一般来说需要写对边容量的更新操作而不是每次全部重新构图POJ 2699 - The Maximum Number of Strong Kings(较难)解法:枚举人数 + 最大流(感谢xpcnq_71大牛的建图的提示)POJ 2987 - Firing(较难)题意:最大权闭包解法:先边权放大,第一问总量-最大流,第二问求最小割相关:&_c02_owner=1Profit(中等)最大权闭包图的特殊情况ZOJ 2071 - Technology Trader 也是此类型,懒了没做3084 - Panic Room(中等,好题)题意:略解法:根据最小割建模POJ 3155 - Hard Life(很挑战一题)题意:最大密度子图解法:参数搜索 + 最大权闭合图,的论文(nb解法)最小割模型在信息学竞赛中的应用一文中也有讲POJ 3189 - Steady Cow Assignment(中等)题意:寻找最小的区间完成匹配解法:这题充分说明SAP的强大,纯暴力可过。

数学建模网络流问题

数学建模网络流问题
修改后的图中对应点的数值,得到正负号相反 的两个数,并将从正到负的方向用箭头表示。 这样,就得到一个最大流量图。
下面,我们用弧标号法求解图2中的最大流。
第一次修改:
(1)从发点s到收点t找一条路,使得这条路上的 所有弧前面的约束量 cij 0 。从图2中可以看出, 显然,① —③—⑥—⑦就是满足这样的条件的一 条路。
2 5 2
3
5
8 1 1 7 6 7 7
2
3 3
1
6 5
3 5 4
图1
点①出发的车辆数应该与点⑦到达的车辆数相同,除 ①和⑦以外的各中间点,进的车辆数应该与离去的车辆数 应该相同。
x12 x13 x14 x57 x67 f
x12 x32 x x 13 23 x14 x34 x x 35 25 x36 x 46 x 23 x 25 x32 x34 x35 x36 x 46 x65 x56 x57 x56 x65 x 67
(8)
(9 )
(10)
所以,对于发点为 Vs ,收点为 Vt 的网络N( V, U), 当增加一条约束为cts=∞的假想弧(t,s)后,最大 流问题就成为: 容量约束:
0 xij cij
(11)
平衡条件:
( j ,i )U
x ji
( j , j )U
xij
(12)
目标函数:
果找不到这样的路,说明已经求得最大流,转步 骤4。
步骤 2. 在选定的路上,找到最小的容许量 cij定为P。
步骤3. 对选定的路上每条弧的容量作以下修改 ,对于与路同向的弧,将cij修改为cij-P,对于 与路反向的弧,将cij修改为cij+P。修改完毕后

网络流 习题 答案

网络流 习题 答案

网络流习题答案网络流是图论中一个重要的概念,它在计算机科学和运筹学等领域有着广泛的应用。

网络流问题可以抽象为在一个有向图中找到从源点到汇点的最大流量或最小割问题。

解决网络流问题的算法有很多种,其中最著名的是Ford-Fulkerson算法和Edmonds-Karp算法。

在解决网络流问题时,我们首先需要定义图的结构。

一个网络流图由一组节点和一组有向边组成。

每条边都有一个容量,表示该边上最大可以通过的流量。

图中有一个特殊的源点和一个汇点,源点是流量的起点,汇点是流量的终点。

我们的目标是找到从源点到汇点的最大流量。

Ford-Fulkerson算法是一种经典的解决网络流问题的方法。

它的基本思想是不断寻找增广路径,即从源点到汇点的一条路径,沿途每条边上的流量都小于等于该边的容量。

通过增加这条路径上的流量,我们可以逐步增大整个网络的流量。

当无法找到增广路径时,算法终止,此时的流量即为最大流量。

Edmonds-Karp算法是Ford-Fulkerson算法的一个改进版本。

它通过使用广度优先搜索来寻找增广路径,从而保证每次找到的路径都是最短的。

这样可以大大提高算法的效率,尤其是在图中边的容量差异较大时。

Edmonds-Karp算法的时间复杂度为O(V*E^2),其中V是节点数,E是边数。

除了上述两种算法外,还有其他一些解决网络流问题的方法,如Dinic算法和Push-Relabel算法等。

这些算法在不同的应用场景下有各自的优势,选择适合的算法可以提高问题的求解效率。

网络流问题的应用非常广泛。

在运输领域,网络流可以用来优化货物的运输方案,使得总运输成本最小。

在通信网络中,网络流可以用来优化数据的传输路径,提高网络的吞吐量。

在社交网络中,网络流可以用来分析信息的传播过程,预测病毒传播的路径等。

总之,网络流是图论中一个重要的概念,它在计算机科学和运筹学等领域有广泛的应用。

解决网络流问题的算法有很多种,每种算法都有其适用的场景。

第7章图与网络分析练习题及答案

第7章图与网络分析练习题及答案

第七章图与网络分析一、单项选择题1.关于可行流,以下叙述不正确的是()A.可行流的流量大于零而小于容量限制条件B.在网络的任一中间点,可行流满足流人量=流出量C.各条有向边上的流量均为零的流是一个可行流D.可行流的流量小于或等于容量限制条件而大于或等于零2.关于最小树,以下叙述()正确。

A.最小树是一个网络中连通所有点而边数最少的图B.最小树是一个网络中连通所有的点,而权数最少的图C.一个网络中的最大权边必不包含在其最小树内D.一个网络的最小树一般是唯一的。

3.最小树的算法关键是把最近的某些结点连接到那些已接结点上去,前者所指结点是()A. 边缘结点B.未接结点C.已接结点D.最重要结点4.最小树问题就是在网络图中,找出若干条边,连接所有结点,而且()A.连接的总长度最大B.连接的总长度最小C.连接的总长度为0D.计算总长度5.最小树问题就是在网络图中,找出若干条边,连接()A.相邻结点B.头尾结点C.部分结点D.所有结点6.任一树中的边数和它的点数之间的关系是()A.边数等于点数减1B.边数等于点数加1C.点数等于边数减1D.点数等于边数加1 7.最大流问题中,对于一个可行流,V i V j有向边上的流量f ij必须满足的条件之一是()A.0≤f ij≥c ijB.0≥f ij≤c ijC. 0≤f ij≤c ijD. 0≥f ij≥c ij8.一个连通图中的最小树可能不唯一,其权()A.是唯一确定的B.可能不唯一C.可能不存在D.一定有多个二、多项选择题1.关于图论中图的概念,以下叙述正确的的()A.图中的边可以是有向边,也可以是无向边B.图中的各条边上可以标注权C.结点数等于边数的连通图必含圈D.结点数等于边数的图必连通E.图中的边只能是有向边2.关于最短路,以下叙述不正确的有()A. 从起点出发到终点的最短路不一定是唯一的,但其最短路线的长度是确定的B.从起点出发到终点的最短路是唯一的C.从起点出发的有向边中的最小权边,一定包含在起点到终点的最短路上D.从起点出发的有向边中的最大权边,一定不包含在起点到终点的最短路上E.整个网络的最大权边的一定不包含在从起点到终点的最短路线上3.关于增广链,以下叙述正确的有()A.增广链是一条从发点到收点的有向路,这条路上各条边的方向必一致B.增广链是一条从发点到收点的有向路,这条路上各条边的方向可不一致C.增广链上与发收点方向一致的边必是非饱和边,方向相反的边必是流量大于零的边 D.增广链上与发收点方向一致的边必是流量小于容量的边,方向相反的边必是流量等于零的边E.增广链上与发收点方向一致的边必是流量为零的边,方向相反边必是流量大于零的边4.在下图中,根据(a)生成的支撑树有()三、应用题1.下图是6个城市的交通图,为将部分道路改造成高速公路,使各个城市均能通达,又要使高速公路的总长度最小,应如何做?最小的总长度是多少?2.对下面的连通图,试求出最小树。

网络最大流问题.docx

网络最大流问题.docx

给定一个有向图D=(V,A),在V中指定一点称为发点(记为 ),该点只有出发去的弧,指定另一点称为收点(记为,),该点只有指向它的弧,其余的点叫做中间点。

对于A中的每一条弧W f,对应一个数*亠20(简记片),称之为弧的容量。

通常我们把这样的D叫做网络,记为D=(V,A,C)。

(2)网络流:在弧集A上定义一个非负函数y_ (Z(Pl JV P)是通过弧的实际流量,简记匚,称扌是网络上的流函数,简称网络流或流,称计Q为网络流的流量。

■ ⅛~ "»丄 / √ 第七章F⅛wearch ι§ 4网络最大流问题网络最大流冋题是网络的另一个基本冋题。

许多系统包含了流量问题。

例如交通系统有车流量,金融系统有现金流,控制系统有信息流等。

许多流问题主要是确定这类系统网络所能承受的最大流量以及如何达到这个最大流量。

4.1基本概念与定理1. 1.网络与流定义14 (1)网络:例1如图7-20是连结某产品产地二和销地一的交通图。

弧∣∕Λ√<.;表示从二到的运输线,弧旁的数字表示这条运输线的最大通过能力IL ,括号内的数字表示该弧上的实际流一]。

现要求制定一个运输方案,使从-r运到甘t的产品数量最多。

可行流与最大流4⑴5(3)IO (I )输网络的实际问题中,我们可以看出,对于流有两个基本要求:一是每条弧上的流量必须是非负的且不能超过该弧的最大通过能力(即该弧的容量)二是起点发出的流的总和(称为流量),必须等于终点接收的流的总和,且各中间点流 入的流量之和必须等于从该点流出的流量之和, 即流入的流量之和与流出的流量之和的差为 零,也就是说各中间点只起转运作用,它既不产出新的物资,也不得截留过境的物资。

因此有下面所谓的可行流的定义。

定义14对于给定的网络 D= ( V,A,C )和给定的流 ."H ■..., 若一.满足下列条件:(1) 容量限制条件:对每一条弧工宀L ,有(7.9)(2)平衡条件: 对于中间点:流出量=流入量,即对于每一个i (i ≠ s,t ),有(7.10)对于出发带点二,有∑Λ ■J l )对于收点■■-,有⑺12)则称」_';丨为一个可行流,’.丄 称为这个可行流的 流量。

第6章 网络流问题

第6章 网络流问题

(7,2)
Vt
(2,2)
如图1(a)中,在路P={Vs , V1 , V2 , V4 , Vt}中 P+={(Vs , V1), (V2 , V4), (V4, Vt)} P-={(V2, V1)}
同一条弧可能在某条路中是前向弧,而在另外一条路中是 后向弧。如弧(V2, V1)在路P1={Vs , V1 , V2 , V4 , Vt}是后向 弧,而在路P2={Vs , V2 , V1 , V3 , Vt}是前向弧。 V2 (4,3) (4,0) (1,1) V4 (7,2) Vt (9,3) V3
寻找可改进路是本算法的关键。(标号法)
标号法求可改进路径的实例1
V2 (3,0) Vs (5,0) (2,0) V1 每个顶点的标号包含两个部分: V3 +∞表示Vs可
以流出任意 第一标号指明它的标号从哪个顶点得到,以便找出可改进 (Vs,3) (V2,3) 多的流量 量; V2 (4,0) V4 (只要从它 发出的弧可 第二个标号是为确定可改进量α用的。 (5,0) (3,0) 以接受) (1,0)
(2,2) V1 (Vs,4)
V3
V2
(4,2) (1,0)
V4
(3,3)
Vs (1,1)
(5,2)
(3,0) Vt (3) 调整
(5,1)
V1 (2,2) V3
(2,2)
(-V1,1) V2 (4,2) (3,3) (1,0) (1,1) (5,1) (2,2) V1 (Vs,4)
V1
V3
可行的运输方案: 1) 2百吨物资沿着有向路径P1(Vs,V2,V1,V4,Vt)运到销售地 2) 2百吨物资沿着有向路径P2(Vs,V1,V3,Vt)运到销售地 3) 1百吨物资沿着有向路径P3(Vs,V2,V3,Vt)运到销售地 (在下图中每条边旁边两个数字如(4,3)分别代表容量和实际流量)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络流经典题
一、最大流:
1、POJ 1273纯最大流
2、Poj1459 这题是标准的最大流问题,经典网络流构图,图已给出,数据规模也很适中,但是比较变态的是读数据。

要去除空格和回车。

3、POJ_2455(相同题型:poj2112 )二分答案+最大流
思路:二分答案,用权值比二分出来的答案小的边来建图。

网络流判定的是是否能够满足找到t条路径。

4、poj1149 网络流关键在建图,图建好了,什么都解决了
5、poj3281 网络流+拆点
6、poj1637混合图欧拉回路用的是网络流
7、poj 2391 floyd + 二分搜索 + 拆点建图 +网络流
8、poj2699枚举人数+ 最大流---模型转化很重要
9、
二、最小割:
1、poj1815 求源和汇联通度的题,转换过来就是最大流最小割问题
2、POJ 2987 Firing 最小割
3、POJ 3204 最小割
实际上就是求割边,但这个割边必需是一头能被源到达,另一头能被汇到达。

4、POJ 3308 最大流最小割,
解题思路:把伞兵看成边,行列看成节点,转化为了带权二分图最小点覆盖。

三、有上下界网络流:
建议大家做poj2396和zoj2314,再看一下周源的讲义,另两题,看看题解了解一下做法,掌握思路,以后找时间再做。

资料:周源的《一种简易的方法求解流量有上下界的网络中网络流问题》,
1、POJ2396——上下界可行流
2、zoj 2314(无源汇上下界可行流)
3、【SGU 176】有下界的最小流
参考:/2010/07/632.html
4、sgu194 无源汇上下界可行流
参考:/ylfdrib/archive/2010/10/11/1848077.html
四、最小费用流:
1、poj3680 经典费用流问题
2、poj 3422 费用流,数据很水
3、POJ 2516简单的最小费用流问题
4、poj 2135无向图的最小费用流
5、[WC2007]剪刀石头布——费用流经典题
题目描述
在一些一对一游戏的比赛(如下棋、乒乓球和羽毛球的单打)中,我们经常会遇到A胜过B,B胜过C而C又胜过A的有趣情
况,不妨形象的称之为剪刀石头布情况。

有的时候,无聊的人们会津津乐道于统计有多少这样的剪刀石头布情况发生,即有多少对无序三元组(A, B, C),满足其中的一个人在比赛中赢了另一个人,另一个人赢了第三个人而第三个人又胜过了第一个人。

注意这里无序的意思是说三元组中元素的顺序并不重要,将(A, B, C)、(A, C, B)、(B,A, C)、(B, C, A)、(C, A, B)和(C,B, A)视为相同的情况。

有N个人参加一场这样的游戏的比赛,赛程规定任意两个人之间都要进行一场比赛:这样总共有场比赛。

比赛已经进行了一部分,我们想知道在极端情况下,比赛结束后最多会发生多少剪刀石头布情况。

Your Task
给出已经发生的比赛结果,你可以任意安排剩下的比赛的结果,要求得到尽量多的剪刀石头布情况。

输入文件
输入文件的第1行是一个整数N,表示参加比赛的人数。

之后是一个N行N列的数字矩阵:一共N行,每行N列,数字间用空格隔开。

在第(i+1)行的第j列的数字如果是1,则表示i在已经发生的比赛中赢了j;该数字若是0,则表示在已经发生的比赛中i败于j;该数字是2,表示i和j之间的比赛尚未发生。

数字矩阵对角线上的数字,即第(i+1)行第i列的数字都是0,它们仅仅是占位符号,没有任何意义。

输入文件保证合法,不会发生矛盾,当i≠j时,第(i+1)行第j列和第(j+1)行第i列的两个数字要么都是2,要么一个是0一个是1。

输出文件
一个数字表示在你安排的比赛中,出现了多少剪刀石头布情况。

样例输入
3
0 1 2
0 0 2
2 2 0
样例输出
1
数据约定
30%的数据中,N ≤6;
100%的数据中,N ≤100。

5、图匹配:
Poj 1469、pku 1274 二分图匹配简单题
Poj 3041 二分图最大匹配最小点覆盖=最大匹配
poj3216 最小路径覆盖
Poj 2446二分图的最大匹配。

思路很巧妙
6、差分约束系统
参加:/accplaystation/blog/item/7c6d10136ef28b856438db6b.html 3169 Layout 差分约束
poj1364 King 差分
poj1716 Integer Intervals 及poj1201 Intervals后者是前者的进化版
7、缩环缩点、强连通
3694 Network 无向图缩点
1236 强连通缩点好题
3160 Father Christmas flymouse 强连通去环缩点,重新构图好题
8、欧拉回路
1041 典型欧拉回路题
1780* Code 简单的欧拉回路题
1637 混合图的欧拉回路好题
2230 Watchcow 欧拉回路双向欧拉回路。

相关文档
最新文档