s - t 平面图最大流

平面图性质

1、(欧拉公式)如果一个连通的平面图有n个点,m条边和f个面,那么f=m-n+2

2、每个平面图G都有一个与其对偶的平面图G* G*中的每个点对应G中的一个面

G*中的每个点对应G中的一个面

对于G中的每条边e

e属于两个面f1、f2,加入边(f1*, f2*)

e只属于一个面f,加入回边(f*, f*)

平面图G与其对偶图G*之间存在怎样的关系呢?

G的面数等于G*的点数,G*的点数等于G的面数,

G与G*边数相同 G*中的环对应G中的割一一对应

例题:BZOJ 1001

1001: [BeiJing2006]狼抓兔子

Time Limit: 15 Sec  Memory Limit: 162 MB
Submit: 29380  Solved: 7697
[Submit][Status][Discuss]

Description

现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,

而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:

左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路

1:(x,y)<==>(x+1,y)

2:(x,y)<==>(x,y+1)

3:(x,y)<==>(x+1,y+1)

道路上的权值表示这条路上最多能够通过的兔子数,道路是无向的. 左上角和右下角为兔子的两个窝,

开始时所有的兔子都聚集在左上角(1,1)的窝里,现在它们要跑到右下解(N,M)的窝中去,狼王开始伏击

这些兔子.当然为了保险起见,如果一条道路上最多通过的兔子数为K,狼王需要安排同样数量的K只狼,

才能完全封锁这条道路,你需要帮助狼王安排一个伏击方案,使得在将兔子一网打尽的前提下,参与的

狼的数量要最小。因为狼还要去找喜羊羊麻烦.

Input

第一行为N,M.表示网格的大小,N,M均小于等于1000.

接下来分三部分

第一部分共N行,每行M-1个数,表示横向道路的权值.

第二部分共N-1行,每行M个数,表示纵向道路的权值.

第三部分共N-1行,每行M-1个数,表示斜向道路的权值.

输入文件保证不超过10M

Output

输出一个整数,表示参与伏击的狼的最小数量.

Sample Input

3 4

5 6 4

4 3 1

7 5 3

5 6 7 8

8 7 6 5

5 5 5

6 6 6

Sample Output

14

题解待更新

原文地址:https://www.cnblogs.com/WTSRUVF/p/9743631.html

时间: 2024-10-31 07:22:22

s - t 平面图最大流的相关文章

BZOJ 1001 [BeiJing2006]狼抓兔子 平面图最大流

Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1,y+1) 道路上的权值表示这条路上最多能够通过的兔子数,道路是

平面图最大流

建出对偶图,最短路即最大流 连接s,t形成的面为新的s,外围都是新的t, 有向图连边方向视情况而定 #include<cstdio> #include<cstring> #include<queue> #define LL long long #define INF 1000000000 using namespace std; LL dis[500000]; int b[500000]; int next[5000000],des[5000000],cnt=0,nd[

20150726 填坑日记

三中内填坑: 1. 组合数递推什么的 C(m,n)=C(m,n-1)+C(m-1,n-1).填了个大坑,以前没认真听课QAQ 2. 裸题过河卒 3. 缺角正方形摆放车统计,分上下部分,枚举上部分放几个即可,O(n) 4. 3d立体图统计表面积:先把上下搞定,然后左右用高度差来统计即可.O(n^2) ===夏令营07.16神题=== 1. 求必经之路,枚举点,删点,BFS看能否到达终点,若不能则为必经点.O(nm) 2. 求生成树,使得生成树中最大边和最小边差最小.模仿kruskal,最小边固定,

怒刷BZOJ记录

我实在是太弱了...不滚粗只能刷BZOJ了...这里来记录每天刷了什么题吧. 2015-7-9 : 1001[BeiJing2006]狼抓兔子                 |最大流练习(呃..其实是平面图最大流辣) 1002[FJOI2007]轮状病毒                     |基尔霍夫矩阵算生成树数量(呃..其实是DP辣) 我先凑一下字数................................................

怒刷BZOJ记录(一)1001~1037

我实在是太弱了...不滚粗只能刷BZOJ了...这里来记录每天刷了什么题吧. 2015-7-9 : 1001[BeiJing2006]狼抓兔子                 | 最大流练习(呃..其实是平面图最大流辣) 1002[FJOI2007]轮状病毒                     | 基尔霍夫矩阵算生成树数量(呃..其实是DP辣) 2015-7-10: 1003[ZJOI2006]物流运输trans             | SPFA+DP 2015-7-11: 1004[H

bzoj 1001: [BeiJing2006]狼抓兔子 平面图最小割

平面图跑最大流 可以转换为其对偶图跑最短路 一个环对应一个割  找到最小环(即最短路)极为所求,注意辅助边的建立 加入读入优化  不过时间还是一般  估计是dij写的不好   大神勿喷~~~ /************************************************************** Problem: 1001 User: 96655 Language: C++ Result: Accepted Time:1724 ms Memory:95120 kb ****

【BZOJ1001】【BeiJing2006】狼抓兔子 最大流

Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x+1,y+1) 道路上的权值表示这条路上最多能够通过的兔子数,道路是

平面图最小割 对偶图

平面图最小割 对偶图: 平面图G的性质: (1)满足n个点,m条边,f个面 f = m - n + 2; (2)存在与其对应的对偶图G*; 对偶图:将原图中每个面变成一个点,外边界的无限大的面看成一个点,后连线即成对偶图: G的面数等于G*的点数,边数相等: 详解请看 最大最小定理(平面图最小割 对偶图)周冬 对于平面图的最大流(最小割)只需转化为对偶图,直接跑最短路即可: ps:觉得建图是最复杂的,各种RE(边数就是原来的边数,只是点数变成了原来的面数,,不注意就RE了):还有现在行数列数都变

平面图转换成对偶图的应用

转自:http://blog.sina.com.cn/s/blog_60707c0f01011fnn.html 一个图G=(V,E),若能将其画在平面上,且任意两条边的交点只能是G的顶点,则称G可嵌入平面,或称G是可平面的.可平面图在平面上的一个嵌入称为一个平面图.如下图左边黑色的图为平面图,右边红色的图不属于平面图: 由平面图的边包围而成,其中不含图的顶点.也称为面.包围面R的所有边组成的回路称为该面的边界,回路长度称为该面的度,记为deg(R).具有相同边界的面称为相邻面.由平面图的边包围且