网络流经典题(含部分其他图论题)
网络流题目
[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章图与网络分析练习题及答案
第七章图与网络分析一、单项选择题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
给定一个有向图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章 网络流问题
(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)分别代表容量和实际流量)
网络专业网络试题AB卷及答案
西北师范大学知行学院2012-2013学年度第一学期计算机科学与技术专业2010级《计算机网络》期末考试试卷(A 卷)班级: 学号:姓名:、选择填空题(每空1分,共35 分)1.在OSI 参考模型中,物理层的功能是 (1) 。
对等实体在一次交互作用中传 输的信息单位称为 ⑵ ,它包括 ⑶ 两部分。
上下邻层实体之间的接口称为服务 访问点(SAP),网络层的服务访问点也称为⑷。
下层给上层提供的服务有⑸2. 路由器是一种常用的网络互连设备,它工作在 TCP/IP 的 (1) 上,在网络中 它能够根据网络通信的情况 ⑵ ,并识别_(3)—。
相互分离的网络经路由器互连后(4)—。
而网桥工作在⑸。
(1) A.物理层B.数据链路层C.网络层D.传输层(1) A.建立和释放连接C.在物理实体间传送数据帧 (2) A.接口数据单元 B.服务数据单元 (3) A.控制信息和用户数据 C.接口信息和控制信息 (4) A.用户地址 B.网络地址(5) A.报文序列服务和字节流服务C.有证实服务和无证实服务 B. 透明地传输比特流D.发送和接收用户数据C. 协议数据单元D.交互数据单元B. 接口信息和用户数据 D.控制信息和校验信息C. 端口地址D.网卡地址B. 数据报服务和虚电路服务 D. 面向连接的服务和无连接的服务(2) A.动态选择路由B.控制数据流量C.调节数据传输率D.改变路由结构D. MAC 地址和网络地址的共同逻辑地址 B.仍然还是原来的网络 D. 成为若干个互连的网络 C. 网络层 D.传输 3. 在一个带宽为3KHz 、没有噪声的信道,传输二进制信号时能够达到的极限数据 传输率为 ⑴ 。
一个带宽为3KHZ 信噪比为30dB 的信道,能够达到的极限数据传 输率为12)_。
上述结果表明, ⑶ o 根据奈奎斯特定理,为了保证传输质量,为达到3Kbps 的数据传输率需要的带宽为⑷ o 在一个无限带宽的无噪声信道上, 传输二进制信号,当信号的带宽为3KHz 时,能达到的极限数据传输率为(5) Kbps ⑴ A . 3Kbps B. 6Kbps C. 56Kbps D. 10Mbps (2) A . 12Kbps B. 30Kbps C. 56Kbps D. 10Mbps (3) A.有噪声信道比无噪声信道具有更大的带宽B. 有噪声信道比无噪声信道可达到更高的极限数据传输率C. 有噪声信道与无噪声信道没有可比性D. 上述值都为极限值,条件不同,不能进行直接的比较 (4) A . 3KHz B . 6KHz C. 2KHz? D. 56KHz(5) A .B . 3C. 6D. 3 log 23⑴ ⑵,若该路由器是该单位的与In ternet 接入路由器,则该单位分得 的IP 地址是 ⑶ 0在一个网络中子网数目划分增多时,可供分配给主机的正常 IP 地址总数目会(1) A .E1B. R2C. R3D. R4 (2) A .E1B. R2C. R3D. R4C. 12(4) A.加 1 B.减1 C. 增加 D. 减少(5) A.直接访问B.不能访问C.需要经过网关进行地址转换D.需要路由器允许(1)—,主机号是⑵ _______________________ ,直接的广播地址是 (3) (4) (5)(1) A. 0.0.0.112 (2) A. 0.0.0.1126.在自治系统内部各个路由器之间运行的是内部网关协议IGP o 早期的IGP 叫做C. MAC 地址和网络地址 ⑷A. C. ⑸A. 形成了一个更大的物理网络形成了一个逻辑上单一的网络物理层 B.数据链路层⑴—,它执行_(2_ °当网络规模扩大时,该算法传输的路由信息太多,增加了网络负载,后来又出现了执行最短路径优先算法的IGP o按照这种协议,每个路由器向网络中的其他路由器发布_(3)_,路由信息改变后,路由器按照 ⑷ 算法更新路由表。
网络流24题题解
⽹络流24题题解⽹络流24题by ctldragon到⽬前为⽌,还有数字梯形问题和机器⼈路径规划问题未完成。
⽹络流24题主要考建模,算法都不难(餐⼱计划问题显然要拆点,把⼀天拆成早上和晚上。
源点 s 向每天晚上连⼀条容量为所需餐⼱数,费⽤为 0 的边,表⽰获得脏餐⼱。
每天早上向汇点 t 连⼀条容量为所需餐⼱数,费⽤为 0 的边,表⽰提供⼲净餐⼱。
每天晚上可以向第⼆天晚上连⼀条容量为 inf ,费⽤为 0 的边,表⽰将脏餐⼱留在第⼆天。
i −m 天向 i 天连⼀条容量为 inf ,费⽤为 f 的边,表⽰快洗。
i −n 天向 i 天连⼀条容量为 inf ,费⽤为 s 的边,表⽰快洗。
然后就愉快的跑最⼩费⽤最⼤流了。
远古代码:by ctldragon s 0t 0inf 0i −m i inf f i −n i inf s #include<bits/stdc++.h>#define re register#define int long longusing namespace std;const int inf=0x3f3f3f3f;int n;int p,ft,fcost,st,scost;int s,t;struct node{int v,nxt,flow,dis;}a[1000000];int head[20000],cnt=1;void add(int u,int v,int flow,int dis){a[++cnt].v=v;a[cnt].flow=flow;a[cnt].dis=dis;a[cnt].nxt=head[u];head[u]=cnt;}int dis[20000],pre[20000];bool vis[20000];bool SPFA(){queue<int>q;memset(vis,false,sizeof vis);memset(pre,0,sizeof pre);while(!q.empty())q.pop();for(re int i=0;i<=2*n+1;i++)dis[i]=inf;dis[s]=0;vis[s]=true;q.push(s);while(!q.empty()){int u=q.front();q.pop();vis[u]=false;for(re int i=head[u];i;i=a[i].nxt){int v=a[i].v;if(!a[i].flow)continue;if(dis[v]>dis[u]+a[i].dis){dis[v]=dis[u]+a[i].dis,pre[v]=i;if(!vis[v])vis[v]=true,q.push(v);}}}if(dis[t]==inf)return 0;return 1;Processing math: 44%n 个⽉之前的代码了,码风极其奇怪/kk家园 / 星际转移问题⾸先并查集判断⼀下地球和⽉球是否连起来,没连起来就是⽆解。
最大流问题经典例题
最大流问题经典例题最大流问题是指在一个有向图中,从源点到汇点的最大流量是多少。
这个问题在现实生活中有很广泛的应用,比如网络通信中的数据传输、水管输水时的流量控制等。
下面我们来看一道经典的最大流问题的例题。
问题描述:给定一个有向图,其中每条边的容量都只会为1,求从源点到汇点的最大流量。
解题思路:这是一道非常基础的最大流问题,我们可以使用网络流的算法来解决。
下面,我将分几个步骤来阐述解题思路。
1. 构建网络流图首先,我们需要将原有的有向图转化为网络流图。
对于每条边,我们都要添加两条反向边,并将容量均设为1。
这样,我们就得到了一个新的有向图,它的任何一条边的容量都为1。
2. 使用Edmonds-Karp算法接下来,我们可以使用Edmonds-Karp算法,也叫增广路算法,来求出最大流量。
它是一种广度优先搜索的算法,的基本思想是:从源点开始,每次找一条容量不为0,且未被搜索过的路径,将路径上的边的容量减去该路径的最小容量,这个最小容量就是该路径的流量。
然后将路径中的正向边的流量加上这个流量,反向边的流量减去这个流量,依次迭代。
3. 输出结果最后,我们将算法得到的最大流量输出即可。
代码实现:以下是使用Python语言实现的最大流问题的代码:```def bfs(graph, start_node, end_node):visited = [False] * len(graph)queue = []queue.append(start_node)visited[start_node] = Truepred = [-1] * len(graph)while queue:curr_node = queue.pop(0)if curr_node == end_node:return True, predfor i, val in enumerate(graph[curr_node]):if not visited[i] and val > 0:queue.append(i)visited[i] = Truepred[i] = curr_nodereturn False, []def edmonds_karp(graph, start_node, end_node):max_flow = 0while True:flow_found, pred = bfs(graph, start_node, end_node) if not flow_found:breakcurr_node = end_nodemin_flow = float('inf')while curr_node != start_node:prev_node = pred[curr_node]min_flow = min(min_flow,graph[prev_node][curr_node])curr_node = prev_nodecurr_node = end_nodewhile curr_node != start_node:prev_node = pred[curr_node]graph[prev_node][curr_node] -= min_flowgraph[curr_node][prev_node] += min_flowcurr_node = prev_nodemax_flow += min_flowreturn max_flowif __name__ == '__main__':graph = [[0, 1, 0, 1, 0],[0, 0, 1, 0, 1],[0, 0, 0, 1, 0],[0, 0, 0, 0, 1],[0, 0, 0, 0, 0]]start_node = 0end_node = 4max_flow = edmonds_karp(graph, start_node, end_node)print("The maximum flow in the network is:", max_flow) ```在这个例子中,我们构建了一个有向图,其中每条边的容量均为1。
网络流题目+题解
网络流建模汇总 by Edelweiss目录最大流 (4)《POJ 1149 PIGS》 (4)《POJ 1637 Sightseeing tour》 (8)《POJ 2391 Ombrophobic Bovines》 (9)《POJ 2699 The Maximum Number of Strong Kings》 (10)《POJ 3281 Dining》 (11)《JOJ 2453 Candy》 (11)《ZOJ 2760 How Many Shortest Path》 (12)《WOJ 1124 Football Coach》 (12)《SGU 326 Perspective》 (13)《SGU 438 The Glorious Karlutka River =)》 (14)《SPOJ 287 Smart Network Administrator》 (14)《SPOJ 962 Intergalactic Map》 (15)《小结》 (15)最小割 (15)《HOJ 2634 How to earn more》 (16)《HOJ 2713 Matrix1》 (16)《POJ 1815 Friendship》 (17)《ZOJ 2532 Internship》 (17)《Ural 1277 Cops and Thieves》 (18)《SPOJ 839 Optimal Marks》 (18)《SPOJ 1693 Coconuts》 (19)《Beijing Regional 2008 Problem A Destroying the bus stations》 (19)《小结》 (20)有上下界 (21)《POJ 2396 Budget》 (21)《小结》 (22)最小费用流 (22)《HOJ 2543 Stone IV》 (22)《HOJ 2715 Matrix3》 (23)《HOJ 2739 The Chinese Postman Problem》 (23)《POJ 3680 Intervals》 (24)《SPOJ 371 Boxes》 (24)《BASHU 2445 餐巾问题》 (25)《剪刀石头布》 (25)《小结》 (26)最大流《POJ 1149 PIGS》【题目大意】有M个猪圈,每个猪圈里初始时有若干头猪。
第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.点数等于边数加17.最大流问题中,对于一个可行流,Vi Vj有向边上的流量fij必须满足的条件之一是()A.0≤fij ≥cijB.0≥fij≤cijC. 0≤fij≤cijD.0≥fij ≥cij8.一个连通图中的最小树可能不唯一,其权()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.对下面的连通图,试求出最小树。
网络流专题
(4,10)
v0
(0,3)
(4,4)
(6,6) vn (4,10)
(5,5)
v3
(0,3)
(4,5)
v1 (6,6) (0,3) (2,2) v5 (0,3) (0,4) v4 (3,5) v2
(4,10)
v0
(0,3)
(4,4)
(6,6) vn (4,10)
(5,5)
v3
(0,3)
(4,5)
v1 (6,6) (0,3) (2,2) v5 (0,3) (0,4) v4 (3,5) v2
可行流
可行流 对于网络流图G,每一条弧(i,j)都给定一个非负数f(i,j)(即某一 次流过弧(i,j)的流量),这一组数满足下列三条件时称为这网 络的可行流,用f表示它。 s (2,4) (0,3) 1. 每一条弧(i,j)有fij≤Cij (2,2) 2. 流量平衡 v1 v2 除源点S和汇点T以外的所有的点vi,恒有: (0,4) (2,2) ∑j(fij)= ∑k(fjk) t 该等式说明中间点vi的流量守恒,输入与输出量相等。 3. 对于源点S和汇点T有 , ∑i(fSi)= ∑j(fjT)= V(f),即从s点流出的量等于流入t点的量
(7,10)
v0
(0,3)
(4,4)
(6,6) vn (7,10)
(5,5)
v3
(0,3)
(4,5)
v1 (6,6) (3,3) (2,2) v5 (3,3) (0,4) v4 (3,5) v2
(7,10)
v0
(0,3)
(4,4)
(6,6) vn (7,10)
(5,5)
v3
(0,3)
(4,5)
网络流题选讲课件
❖
相邻点连边,容量+∞ ,费用1。
❖ 若a[i]<-d,则至少要从别的地方拿 −
个1,且不能多于 + 个;因此从点i向t
连边,容量下界 − ,上界 + ,
费用0。
❖
类似,若a[i]>d,则从s向i连边,容量下界为
− ,上界[] + ,费用0
❖ 最小费用可行流
❖
建设乌托乡
一张图,有特殊点和一般点
❖ 每条边的端点中至少一个特殊点
❖ 每个点有权值L,特殊点可以修改,代价为
c*|ΔL[i]|
❖ 边(i,j)要计算代价,为e*|L[i]-L[j]|
❖ 求min{c*Σ|ΔL[i]|+e*Σ|L[i]-L[j]|}
❖ L只能为1~20的整数
❖
有道难题2010总决赛题
容量为(counti,j+1)/2。
❖ 费用为0
❖
Road
数列h
❖ 修改,使之满足:相邻项差小于d
❖ 总修改代价为 Σ|Δh[i]|
❖
NOI2009 湖南省选题
❖
有别的算法,但是可以用网络流做
令a[i]=h[i]-h[i+1]
❖ h[i]加1 a[i-1]减1 且 a[i]加1。
❖ 将a重新分配,使得每个a都在[-d,d]范围内。
X[2]+X[3]-Y[3]-4=0
❖
❖
❖
❖
X[1]-Y[1]-2=0
X[1]+X[2]-Y[2]-3=0
X[2]+X[3]-Y[3]-4=0
0=0
❖
❖
❖
网络最大流问题
中弧皆未饱 ,则称为D中关于可行流
中弧皆非零
f的
一条可增值链。
v2 (4,3) v4
(3,3)
(5,3)
vs
(1,1) (1,1)
(3,0)
vt
(5,1)
v1 (2,2)
(2,1)
v3
v2 (4,3)
v4
(3,3)
(5,3)
vs
(1,1) (3,0)
vt
(1,1)
(5,1)
v1
(2,2)
(2,1)
1、对增广链中的前向弧,令 f=f+q(t),q(t) 为节点 t 的
标记值
2、对增广链中的后向弧,令 f=fq(t)
3、非增广链上的所有支路流量保持不变
第三步:抹除图上所有标号,回到第一步
例1 用标号法求下面网络的最大流。
[1,v ]
[1,v ]
1
2
(3,3) v2• (4,3) v•4 (5,3)
8(8)
2(0)
s
5(4)
(0, )
7(5)
9(9)
v2 (s,2)
v3 (v1,2)
5(5)
6(1)
10(8)
v4 (v3 ,1)
t (v4,1)
v1(v2 ,1) 9(5)
v3 (v1,1)
8(8)
s
5(3)
(0, )
7(6)
v2 (s,1)
5(5)
2(0)
6(0)
9(9)
k
10(9)
v4 (v3 ,1)
中国邮递员问题用图论的观点来看就是: 在 一个赋权连通图中,找一个过每边至少一次的闭链 (圈),并且使闭链的权最小。它的算法与一笔画 问题有关。
网络流和棒球赛淘汰问题
道路里的总流量减去这些蓝色道路里的总流量,
匿4 一 个 藏 l 为8 的 两络 流
一
定等于整个网络流的总流量。 例如 , 在图2 、图
与图中箭头方向相反的路段的实际流量都减1 。于 3 和 图4 当 中, 道路a —t 和b —c 的实 际流 量 之 和 , 减 是, 整个网络变成了图4 的样子 。此时你会发现 ,
都 有各自的最大车流量限制, 我们 已把它们标在 每 个个体的命运。换句话说,我们可以假 设汽车
了 图上 。 例如 , 道 路b —c 的最 大车 流 量 为6 , 这 就 与汽车之间都是无差异 的。 事 实上,如果 把这 个 表 示 当你 站 在 这 条 道 路 上 的 任 意 一 点 时 , 单 位 时 圈里的所有道路的实际流量都减1 , 整个网络的总
T e c h n o l o g y 技术
题, 可以归结为一个简单而巧妙的网络流模型。
I 舣 】 络流和最人流算法
让 我们 先来看一个似乎完全无关的问题 。 假设 图
1 是一个 交通 网示意 图, 其中S 点是出发 点 ( 或者
说 入口), t A是终点 ( 或者说出口), 其余所有的
驶入的路 , 流量为2 。 从s —b 和a —b 这两条路上来的 图2 的流量显然还没有达到最大, 因为我们还可以 到t 的路径 , 使得途 中经过的每条道 车合流后驶入b —c , 因而b —c 的实际流量就是5 。 这 找 出一条从s 5 4 " - 单位的车流量是c 路口的驶入汽车的唯一来源, 路的流量都还没满 。 例如 , s —a —b —c —t 就是这
路走 , 是无 法 走 到t 点的 。我们 把 从S 点 出发 按 此规
则能走到的所有点组成的集合记作u 。根据集合U 的定义 , 任何一条从u内走 ̄ j E u # l , 的道路一定都已 满流了, 任何一条从u 外走进u内的道路流量一定
图论基础与网络流习题集锦
图论简介
平行边:即重边。 环:即自环。 简单图:不含平行边且不含环的图。 度:无向图中,与某点关联的边的数量。 入度,出度:有向图中,与某点关联的入边和出边 的数量。 K-正则图:无向简单图中所有点的度数都为K。 握手定理:所有点度数之和等于2*|E|。
同构:两个无向图<V1,E1>与<V2,E2>,若存在双 射函数f:V1->V2,使得对于任意vi,vj ∈ V1,f(vi),f(vj) ∈ V2时, <vi,vj> ∈ E1当且仅当<f(vi),f(vj)> ∈ E2, 则称这两个无向图同构。
网络流习题集锦:闭合子图
最大权闭合子图类问题:
给定一些事件。
事件之间有依赖关系,比如若选了A就一定要选B。
建图的经典思想: S->(pA S->B->T A->(c)B 用c作为最小割
网络流习题集锦:加工顺序
有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来 完成,你可以通过购买或租用机器来完成。现在给出这 些参数,求最大利润。 N<=1200,M<=1200
解答: 将所有工人看做一个点排成一排在左边,所有产品看 做一个点排成一排在右边,若某个工人会制造某个产 品,则在相应的两个点上连容量为1的边。
此时,我们考虑到对这个图做网络流,源向左边每个 点都连一条容量为K的边,右边每个点向终点连一条容 量为K的边,如果没有流满,那么显然是不可能有解的。 而如果流满,则根据Hall定理,我们也可以知道它是有 解的,然后一遍一遍进行二分图匹配即可。
网络流习题集锦:路径覆盖
路径覆盖类题目,主要是指这样一类问题:给定一个 图以及一系列行走规则,问如何使用最小的代价将用 一系列按照行走规则的路径覆盖住。 下面我们就来具体问题具体反分析。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 欧拉回路双向欧拉回路。