BZOJ1001: [BeiJing2006]狼抓兔子
1001: [BeiJing2006]狼抓兔子
Time Limit: 15 Sec Memory Limit: 162 MB
Submit: 22268 Solved: 5600
[Submit][Status][Discuss]
Description
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
HINT
2015.4.16新加数据一组,可能会卡掉从前可以过的程序。
Source
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,m;
int ne;
struct data{int to,next,v;}e[6000001];
int head[1000001];
int h[1000001],q[1000001],ans;
void insert(int u,int v,int w)
{ne++;e[ne].to=v;e[ne].v=w;e[ne].next=head[u];head[u]=ne;
}
bool bfs()
{int now,i;memset(h,-1,sizeof(h));int t=0,w=1;q[t]=1;h[1]=0;while(t<w){ now=q[t];t++;i=head[now];while(i){if(e[i].v&&h[e[i].to]<0){q[w++]=e[i].to;h[e[i].to]=h[now]+1; }i=e[i].next;}}if(h[n*m]==-1)return 0;//找不到增广路 return 1;
}
int dfs(int x,int f)
{if(x==n*m)return f;int w,used=0;int i=head[x];while(i){if(e[i].v&&h[e[i].to]==h[x]+1){w=f-used;w=dfs(e[i].to,min(w,e[i].v));e[i].v-=w;e[i+1].v+=w;used+=w;if(used==f)return f;}i=e[i].next;}if(!used) h[x]=-1;return used;
}
void dinic()
{while(bfs()) ans+=dfs(1,0x7fffffff);
}
int main()
{scanf("%d%d",&n,&m);int x;for(int i=1;i<=n;i++)for(int j=1;j<m;j++){scanf("%d",&x);insert(m*(i-1)+j,m*(i-1)+j+1,x);insert(m*(i-1)+j+1,m*(i-1)+j,x);}for(int i=1;i<n;i++)for(int j=1;j<=m;j++){scanf("%d",&x);insert(m*(i-1)+j,m*(i)+j,x);insert(m*(i)+j,m*(i-1)+j,x);}for(int i=1;i<n;i++)for(int j=1;j<m;j++){scanf("%d",&x);insert(m*(i-1)+j,m*(i)+j+1,x);insert(m*(i)+j+1,m*(i-1)+j,x);}//巧妙建图 dinic();printf("%d",ans);return 0;
}
BZOJ1001: [BeiJing2006]狼抓兔子相关推荐
- BZOJ1001[BeiJing2006]狼抓兔子最小割網絡流
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- BZOJ1001[BeiJing2006]狼抓兔子——最小割
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- [BZOJ1001]: [BeiJing2006]狼抓兔子
题目描述 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对 ...
- bzoj1001:[BeiJing2006]狼抓兔子
传送门 最小割,一眼最小割,这个甚至不需要建什么模型,直接按它给的建就好了,最小割=最大流,跑个最大流就行了,注意:图是无向图 #include<cstdio> #include<q ...
- BZOJ1001 [BeiJing2006]狼抓兔子 (网络流)
题意分析 一看就是一道网络流的题目,然后上去最大流直接搞. 然后发现超时了,所以学了一波当前弧优化,然后就过了. 然后我觉得还可以再快一点,就IO加速了一下, 发现速度提高了400ms. 嗯,FAST ...
- bzoj1001 [BeiJing2006]狼抓兔子(最小割/平面图最大流转对偶图最短路)
首先这题显然就是求一个最小割.然后跑dinic加点优化也是可以过的. 这题还有一种更妙的做法:st平面图最大流转对偶图最短路.大概做法就是首先在原图中加一条s->t的边,然后把原图的一个面当作一 ...
- 【BZOJ1001】狼抓兔子题解
BZOJ1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还 ...
- BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 23822 Solved: 6012 [Submit ...
- 1001: [BeiJing2006]狼抓兔子(对偶图)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 23595 Solved: 5940 Descrip ...
- 【BZOJ1001】狼抓兔子
[BZOJ1001]狼抓兔子 题面 bzoj 题解 懒得平面图转对偶图了,直接最小割板子加优化. #include <iostream> #include <cstdio> # ...
最新文章
- clamav病毒库格式解析
- 工具推荐|程序员必须知道的11款新型编程工具
- 王府井上半年营收46.88亿元 同比上涨36.88%
- 绕过路由系统 (Bypassing the Routing System)| 高级路由特性
- 和jwt应用场景_一文了解web无状态会话token技术JWT
- 希尔伯特变换(Hilbert Transform)简介及其物理意义
- html页面睡眠函数,JavaScript sleep睡眠函数
- 人员招聘与培训实务【1】
- 关于Windows 10驱动无法使用,无法验证设备所需的驱动程序的数字签名问题
- PHP 视频格式转换类
- android7工程自测模式,工程模式测试
- RabbitMQ之管理与监控
- 英语语音篇 - 拼读规则
- 61. 请简述self在类中的意义?
- 与老婆大人书之‘欧阳先生’
- 浅谈这半年的实习感想
- HDMI 网线延长器
- 3D步进式全景漫游解决方案,虚拟全景解决方案,一步一景全景解决方案
- PHP-FFMpeg 安装
- 计算球的体积-java