1001: [BeiJing2006]狼抓兔子

Time Limit: 15 Sec  Memory Limit: 162 MB
Submit: 22268  Solved: 5600
[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

HINT

2015.4.16新加数据一组,可能会卡掉从前可以过的程序。

Source

初探网络流:
题解::::啊 好简(nan)单(a) , 网络流真是个好东西 这也可以算模版吧 听说这题可以平面图转对偶图跑最短路暂时还没有研究QAQ 挖坑
贴上抄来的代码:
#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]狼抓兔子相关推荐

  1. BZOJ1001[BeiJing2006]狼抓兔子最小割網絡流

    Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...

  2. BZOJ1001[BeiJing2006]狼抓兔子——最小割

    题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...

  3. [BZOJ1001]: [BeiJing2006]狼抓兔子

    题目描述 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对 ...

  4. bzoj1001:[BeiJing2006]狼抓兔子

    传送门 最小割,一眼最小割,这个甚至不需要建什么模型,直接按它给的建就好了,最小割=最大流,跑个最大流就行了,注意:图是无向图 #include<cstdio> #include<q ...

  5. BZOJ1001 [BeiJing2006]狼抓兔子 (网络流)

    题意分析 一看就是一道网络流的题目,然后上去最大流直接搞. 然后发现超时了,所以学了一波当前弧优化,然后就过了. 然后我觉得还可以再快一点,就IO加速了一下, 发现速度提高了400ms. 嗯,FAST ...

  6. bzoj1001 [BeiJing2006]狼抓兔子(最小割/平面图最大流转对偶图最短路)

    首先这题显然就是求一个最小割.然后跑dinic加点优化也是可以过的. 这题还有一种更妙的做法:st平面图最大流转对偶图最短路.大概做法就是首先在原图中加一条s->t的边,然后把原图的一个面当作一 ...

  7. 【BZOJ1001】狼抓兔子题解

    BZOJ1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还 ...

  8. BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 23822  Solved: 6012 [Submit ...

  9. 1001: [BeiJing2006]狼抓兔子(对偶图)

    1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec  Memory Limit: 162 MB Submit: 23595  Solved: 5940 Descrip ...

  10. 【BZOJ1001】狼抓兔子

    [BZOJ1001]狼抓兔子 题面 bzoj 题解 懒得平面图转对偶图了,直接最小割板子加优化. #include <iostream> #include <cstdio> # ...

最新文章

  1. clamav病毒库格式解析
  2. 工具推荐|程序员必须知道的11款新型编程工具
  3. 王府井上半年营收46.88亿元 同比上涨36.88%
  4. 绕过路由系统 (Bypassing the Routing System)| 高级路由特性
  5. 和jwt应用场景_一文了解web无状态会话token技术JWT
  6. 希尔伯特变换(Hilbert Transform)简介及其物理意义
  7. html页面睡眠函数,JavaScript sleep睡眠函数
  8. 人员招聘与培训实务【1】
  9. 关于Windows 10驱动无法使用,无法验证设备所需的驱动程序的数字签名问题
  10. PHP 视频格式转换类
  11. android7工程自测模式,工程模式测试
  12. RabbitMQ之管理与监控
  13. 英语语音篇 - 拼读规则
  14. 61. 请简述self在类中的意义?
  15. 与老婆大人书之‘欧阳先生’
  16. 浅谈这半年的实习感想
  17. HDMI 网线延长器
  18. 3D步进式全景漫游解决方案,虚拟全景解决方案,一步一景全景解决方案
  19. PHP-FFMpeg 安装
  20. 计算球的体积-java

热门文章

  1. 谷歌翻译是如何获得突破性进展?
  2. 【原创】2021-2001重庆统计年鉴面板数据、重庆市统计年鉴、重庆年鉴、重庆区县数据(可直接使用)
  3. 【教你快速让基本磁盘转换成动态磁盘】
  4. python rect用法,功能
  5. 破解intelliJ idea 2017
  6. 地理信息安全在线培训考试系统题库-单选题
  7. 35 个非主流数据库
  8. Python 数据处理 | 详解缩尾处理(winsorize)和代码实践
  9. 10. python-es-8.3.3-IP范围聚合ip_range
  10. 创建第一个Android app项目