网络流——增广路算法(dinic)模板 [BeiJing2006]狼抓兔子
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<queue>
using namespace std;
struct data
{
int from,to,next,cup;
data(){from=-,to=-,next=-,cup=-;}
}e[];
int cnt=,head[];
int dis[];
bool vis[];
void add(int u,int v,int w)
{e[cnt].from=u,e[cnt].to=v,e[cnt].next=head[u],head[u]=cnt,e[cnt].cup=w;cnt++;}
int s,t;
bool bfs()
{
memset(dis,-,sizeof(dis));
int f=;
queue<int> q;
q.push(s);
dis[s]=;
while(!q.empty())
{
int n=q.front();
q.pop();
for(int i=head[n];i>=;i=e[i].next)
{
if(dis[e[i].to]==-&&e[i].cup>)
{
dis[e[i].to]=dis[n]+;
q.push(e[i].to);
}
}
}
return dis[t]!=-;
}
int dfs(int n,int a)
{ if(n==t||a==) return a;
int flow=,f;
for(int i=head[n];i>=;i=e[i].next)
{
if(dis[e[i].to]==dis[n]+&&e[i].cup>)
{
f=dfs(e[i].to,min(a,e[i].cup));
e[i].cup-=f;
e[i^].cup+=f;
flow+=f;
a-=f;
if(a==) break;
}
}
if(!flow) dis[n]=-;
return flow;
}
int dinic()
{
int sum=;
while(bfs()) sum+=dfs(s,);
return sum;
}
int main()
{
memset(head,-,sizeof(head));
int n,m;
scanf("%d%d",&n,&m);
int x;
for(int i=;i<=n;i++)
for(int j=;j<m;j++)
{
scanf("%d",&x);
add(m*(i-)+j,m*(i-)+j+,x);
add(m*(i-)+j+,m*(i-)+j,x);
}
for(int i=;i<n;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&x);
add(m*(i-)+j,m*(i)+j,x);
add(m*(i)+j,m*(i-)+j,x);
}
for(int i=;i<n;i++)
for(int j=;j<m;j++)
{
scanf("%d",&x);
add(m*(i-)+j,m*(i)+j+,x);
add(m*(i)+j+,m*(i-)+j,x);
}
s=,t=m*n;
printf("%d\n",dinic());
}
网络流——增广路算法(dinic)模板 [BeiJing2006]狼抓兔子的更多相关文章
- HDU3549 Flow Problem(网络流增广路算法)
题目链接. 分析: 网络流增广路算法模板题.http://www.cnblogs.com/tanhehe/p/3234248.html AC代码: #include <iostream> ...
- 【BZOJ】1001: [BeiJing2006]狼抓兔子 Dinic算法求解平面图对偶图-最小割
1001: [BeiJing2006]狼抓兔子 Description 左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下 三种类型的道路 1:(x,y)<==>( ...
- BZOJ1001: [BeiJing2006]狼抓兔子(优化的dinic或转化对偶图求最短路)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 30078 Solved: 7908[Submit][ ...
- BZOJ1001 BeiJing2006 狼抓兔子 【网络流-最小割】*
BZOJ1001 BeiJing2006 狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较 ...
- BZOJ1001: [BeiJing2006]狼抓兔子 [最小割 | 对偶图+spfa]
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 19528 Solved: 4818[Submit][ ...
- BZOJ 1001 [BeiJing2006] 狼抓兔子(平面图最大流)
题目大意 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的.而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 23822 Solved: 6012[Submit][ ...
- 1001: [BeiJing2006]狼抓兔子
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 12827 Solved: 3044[Submit][ ...
- BZOJ 1001 [BeiJing2006]狼抓兔子 (UVA 1376 Animal Run)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 24727 Solved: 6276[Submit][ ...
随机推荐
- PHPCMS v9 模型概念及用法
phpcms v9 模型概念 一.什么是模型? 模型是系统知识的抽象表示.我们不能仅仅通过语言来描述一个系统,也不能仅仅通过记忆来记录关于系统的知识.知识是通过某种媒介来表达的,这种媒介所表达的内容就 ...
- 清除IE下链接虚线框
方法一:利用javascript的onfocus事件,实现如下: Html代码 <a href="http://www.www.baidu.com" onfocus=&qu ...
- 在线提取PDF中图片和文字
无需下载软件,你就可以在线提取PDF中图片和文字,http://www.extractpdf.com/不仅可以获取本地PDF文档的图片和文字,还能获取远程PDF文档的图片和文字.如下图所示:结果本人测 ...
- XML解析方式与解析工具
DOM解析原理: 1)JAXP (oracle-Sun公司官方) 2)JDOM工具(非官方) 3)Dom4J工具(非官方) 三大框架(默认读取xml的工具就是Dom4j) ....... SAX解析原 ...
- 编译TWRP-recovery教程及源码地址
TWRP这个是一个老外的开源项目,全称Team-Win-Recovery-Project Source:https://github.com/TeamWin/Team-Win-Recovery-Pro ...
- 转:Twitter.com在用哪些Javascript框架?
原文来自于:http://blog.jobbole.com/63964/ 我一直在研究twitter.com使用的一些UI框架.下面是这些框架的清单(大部分是Javascript框架).如果你发现有些 ...
- 在Activity的生命周期中,会被系统回调的方法
onCreate(Bundle savedStatus):创建Activity时被回调.onStart():启动Activity时被回调.onRestart():重新启动Activity时被回调.on ...
- Gridview中的数据导出到excel中
protected void btnExport_Click(object sender, EventArgs e) { //导出全部数据,取消分页 ...
- MCS51浮点计算程序
MSC-51 3字节和4字节浮点数计算程序,主要用于数据采集及上传,经过IEEE转换,在上位机直接显示. ;这是本人使用的MSC-51 3字节和4字节浮点数计算程序,主要用于数据采集及上传,经过IEE ...
- Printing Architecture
Printing Architecture http://www.codeproject.com/Articles/8916/Printing-Architecture This articl ...