刷题向》图论》BZOJ1001 平面图最大流、平面图最小割、单源最短路(easy+)
坦白的说这是一道水题,但是因为是BZOJ上的1001,所以这道题有着特殊的意义。
关于最大流转最短路的博客链接如下:关于最大流转最短路两三事
这道题的图形很规矩,所以建边和建点还是很简单的。
题目如下

Input
Output
输出一个整数,表示参与伏击的狼的最小数量.
Sample Input
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
#include<stdio.h>
struct shit{int aim,next,lon;}e[+];
int d[+],a,b,n,m,num,star,ass,quq[+],point,head[+];
bool f[+];
void fuck(int x,int y,int s)
{
e[++point].aim=x;
e[point].lon=s;
e[point].next=head[y];
head[y]=point;
e[++point].aim=y;
e[point].lon=s;
e[point].next=head[x];
head[x]=point;
}
int main()
{
scanf("%d%d",&n,&m);
if (n == || m == )//诡异的特判
{
if (n > m){n=n+m;m=n-m;n=n-m;}
int ans = ;
for (int i = ; i < m; ++i)
{
int x;
scanf("%d",&x);
if (x < ans) ans = x;
}
printf("%d\n", ans);
return ;
}
int S=,T=(n-)*(m-)*+;//建图
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
scanf("%d",&num);
a=(i*-)*(m-)+j;
b=i**(m-)+j;
if(i==)a=S;
if(i==n-)b=T;//以下是存双向边的过程
fuck(a,b,num);
}
for(int i=;i<n-;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&num);
a=*i*(m-)+j-;
b=(*i+)*(m-)+j;
if(j==)a=T;
if(j==m)b=S;
fuck(a,b,num);
}
for(int i=;i<n-;i++)
for(int j=;j<m;j++)
{
scanf("%d",&num);
a=*i*(m-)+j;
b=(*i+)*(m-)+j;
fuck(a,b,num);
}
star=;//SPFA
ass=;
f[S]=true;
for(int i=;i<=T;i++)d[i]=;
d[S]=;
while (star<=ass)
{
int x=quq[star];
f[quq[star++]]=false;
for (int i=head[x];i!=;i=e[i].next)
{
int y=e[i].aim;
if (d[y]>d[x]+e[i].lon)
{
d[y]=d[x]+e[i].lon;
if (f[y]==false)
{
quq[++ass]=y;
f[y]=true;
}
}
}
}
printf("%d",d[T]);
return ;
}
刷题向》图论》BZOJ1001 平面图最大流、平面图最小割、单源最短路(easy+)的更多相关文章
- BZOJ1001/LG4001 「ICPC Beijing2006」狼抓兔子 平面图最小割转对偶图最短路
问题描述 BZOJ1001 LG4001 题解 平面图最小割=对偶图最短路 假设起点和终点间有和其他边都不相交的一条虚边. 如图,平面图的若干条边将一个平面划分为若干个图形,每个图形就是对偶图中的一个 ...
- [ACM_图论] Domino Effect (POJ1135 Dijkstra算法 SSSP 单源最短路算法 中等 模板)
Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...
- [BZOJ 2007] [Noi2010] 海拔 【平面图最小割(对偶图最短路)】
题目链接:BZOJ - 2007 题目分析 首先,左上角的高度是 0 ,右下角的高度是 1.那么所有点的高度一定要在 0 与 1 之间.然而选取 [0, 1] 的任何一个实数,都可以用整数 0 或 1 ...
- UVA 10480 Sabotage (网络流,最大流,最小割)
UVA 10480 Sabotage (网络流,最大流,最小割) Description The regime of a small but wealthy dictatorship has been ...
- 算法笔记--最大流和最小割 && 最小费用最大流 && 上下界网络流
最大流: 给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow). 最小割: 割是网 ...
- BZOJ 2007 海拔(平面图最小割转对偶图最短路)
首先注意到,把一个点的海拔定为>1的数是毫无意义的.实际上,可以转化为把这些点的海拔要么定为0,要么定为1. 其次,如果一个点周围的点的海拔没有和它相同的,那么这个点的海拔也是可以优化的,即把这 ...
- bzoj2007/luoguP2046 海拔(平面图最小割转对偶图最短路)
bzoj2007/luoguP2046 海拔(平面图最小割转对偶图最短路) 题目描述: bzoj luogu 题解时间: 首先考虑海拔待定点的$h$都应该是多少 很明显它们都是$0$或$1$,并且所 ...
- BZOJ-1001 狼抓兔子 (最小割-最大流)平面图转对偶图+SPFA
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 14686 Solved: 3513 [Submit][ ...
- BZOJ1001:狼抓兔子(最小割最大流+vector模板)
1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较笨, ...
随机推荐
- 解决问题:zipimport.ZipImportError: can't decompress data; zlib not available
场景描述 需要从源代码编译安装python-3.6.1的版本 环境描述 python-2.7.5, Centos 7 步骤重复 解压缩python-xx.tgz 进入源代码目录 ./configure ...
- Leetcode 1006. Clumsy Factorial
class Solution(object): def clumsy(self, N): """ :type N: int :rtype: int "" ...
- golang包快速生成base64验证码
base64Captcha快速生成base64编码图片验证码字符串 支持多种样式,算术,数字,字母,混合模式,语音模式. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一.Base6 ...
- css3单冒号和双冒号的区别
css3中对于伪元素的使用,在项目开发中使用得当将会对代码的可读性又很大的提升.但是对于伪类大家或许都知道是一些选择器的使用,这里总结了关于伪元素中单冒号和双冒号的区别: 再官方定义中规定单冒号都为伪 ...
- 在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间
在oracle里,如何取得本周.本月.本季度.本年度的第一天和最后一天的时间 --本周 select trunc(sysdate,'d')+1 from dual; select trunc(sysd ...
- Java JDK安装和配置(Windows)
安装和配置JDK JDK中自带了JRE,不需要单独下载, 打开JDK安装, 选择安装目录,下一步,装完JDK,会问是否安装JRE,选下一步, 最后还会问是否安装Java FX, 装完后就全部完成了JD ...
- sapconnector.dll download
Sapnoc30Demo_Yan.rar Sap30Server.rar SAPNCO_Sample_Code.zip sapcon3.0_X64.rar DbEntry.Net.4.1.Setup. ...
- django中的@login_required
转:http://www.cnblogs.com/ccorz/p/Django-zhong-loginrequired-yong-fa-jian-jie.html 1.网站开发时的登录需求: ===用 ...
- PCBA 的收货要求记录
PCBA 的收货要求记录 性能 功能性测试 外观 标识 需要可以识别的料号(客户料号或货号) 贴片 元件焊点饱满 元件参数统一 后焊 插件焊盘饱满 插件焊盘不可以有小孔 焊盘不可以有漏铜上锡均匀 体积 ...
- 洛谷 2680 (NOIp2015) 运输计划
题目:https://www.luogu.org/problemnew/show/P2680 因为是最长的时间最短,所以二分! 离线LCA可以知道路径长度.每次只看超过二分值的路径. 原本的想法是遍历 ...