【bzoj题解】1001 狼抓兔子
题目描述
4 3 1
7 5 3
5 6 7 8
8 7 6 5
5 5 5
6 6 6
1 #include<cstdio> 2 #include<cstring> 3 #define F(i,a,b) for(int i=a;i<=b;++i) 4 #define F2(i,a,b) for(int i=a;i<b;++i) 5 #define v(a,b) ((a-1)*m+b) 6 int n,m,S,T; 7 int h[1000001],nxt[6000001],to[6000001],cap[6000001],tot=1; 8 inline void ins(int x,int y,int c){nxt[++tot]=h[x];to[tot]=y;cap[tot]=c;h[x]=tot;nxt[++tot]=h[y];to[tot]=x;cap[tot]=c;h[y]=tot;} 9 int iter[1000001],lv[1000001],que[1000001],l,r; 10 inline int Min(int p,int q){return p<q?p:q;} 11 void init(){ 12 int x; 13 scanf("%d%d",&n,&m); S=1, T=v(n,m); 14 F(i,1,n) F2(j,1,m) 15 scanf("%d",&x), ins(v(i,j),v(i,j+1),x); 16 F2(i,1,n) F(j,1,m) 17 scanf("%d",&x), ins(v(i,j),v(i+1,j),x); 18 F2(i,1,n) F2(j,1,m) 19 scanf("%d",&x), ins(v(i,j),v(i+1,j+1),x); 20 } 21 bool lvl(){ 22 memset(lv,0,sizeof lv); 23 lv[S]=1; que[1]=S; l=r=1; 24 int u; 25 while(l<=r){ 26 u=que[l++]; 27 for(int i=h[u];i;i=nxt[i]) 28 if(cap[i]&&!lv[to[i]]) lv[to[i]]=lv[u]+1, que[++r]=to[i]; 29 } if(!lv[T]) return 0; 30 F(i,S,T) iter[i]=h[i]; 31 return 1; 32 } 33 int flow(int u,int f){ 34 if(u==T) return f; 35 int d,sum=0; 36 for(int&i=iter[u];i;i=nxt[i]){ 37 if(cap[i]&&lv[to[i]]>lv[u]){ 38 d=flow(to[i],Min(cap[i],f)); 39 sum+=d; f-=d; 40 cap[i]-=d; cap[i^1]+=d; 41 if(!f) return sum; 42 } 43 } 44 return sum; 45 } 46 int Dinic(){ 47 int sum=0; 48 while(lvl()) 49 sum+=flow(S,999999999); 50 return sum; 51 } 52 int main(){ 53 init(); 54 printf("%d",Dinic()); 55 return 0; 56 }
转载于:https://www.cnblogs.com/PinkRabbit/p/7327131.html
【bzoj题解】1001 狼抓兔子相关推荐
- bzoj 1001狼抓兔子
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 15622 Solved: 3771 [ Sub ...
- BZOJ 1001: 狼抓兔子
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB [ Submit][ Status] Description 现在小 ...
- BZOJ 1001 狼抓兔子
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 25653 Solved: 6512 [Submit ...
- BZOJ 1001 狼抓兔子(Dijkstra)
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
- BZOJ:1001狼抓兔子
简直了非常迷 看到题目毫不犹豫的写了一个网络流,然后果真就TLE了 翻了一下题解,就是最大流最小割定理然后,然后将平面图变成对偶图,相当于是从起点到终点跑一个最短路就可以了 神马居然还有这种操作??! ...
- [BZOJ 1001] 狼抓兔子
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1001 分析 这是道经典的对偶图问题, 平面图最大流问题可以转化为其对偶图的最短路问题. 转化的 ...
- BZOJ 1001: [BeiJing2006]狼抓兔子【最大流/SPFA+最小割,多解】
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 23822 Solved: 6012 [Submit ...
- 【BZOJ1001】狼抓兔子题解
BZOJ1001: [BeiJing2006]狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还 ...
- 1001: [BeiJing2006]狼抓兔子(对偶图)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Submit: 23595 Solved: 5940 Descrip ...
最新文章
- 电脑温度检测软件哪个好_一般电脑录音软件哪个好?
- table列最小宽度 vue_vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)...
- pureftpd + pureftp-user-manager 构建磁盘配额,速率限制,web管理ftpserver
- 【sublime Text】sublime Text3安装可以使xml格式化的插件
- VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题
- 设计模式学习(一)——策略模式
- 片上网络NoC(一)—— 概述
- java 日期 区间_如何实现时间区间的分割??
- C++重载IO操作符
- Android :ScaleAnimation
- oracle客户端ora 12541,Oracle 11g 64bit下程序报ORA-12541: TNS: 无监听程序解决办法
- 02 . 在 Linux 上安装Oracle11g 数据库
- 【配送路径规划】基于matlab遗传算法求解单配送中心多客户多车辆最短路径规划问题【含Matlab源码 1602期】
- 开元酒店在中国的签约及在营酒店规模正式超过600家
- 微信公众服务号如何快速申请注册并认证开通支付功能
- html转word设置一二三级标题,word怎么设置一二三级标题
- php steamcommunity,使用PHP和Regex获取Steam社区市场上商品的价格
- “建木”萌芽,聚木成林
- 奇门遁甲排盘方:定局
- 数据结构算法 - 栈
热门文章
- Linux--文件结构体struct file
- 程序中调用命令行命令,不显示那个黑黑的DOS窗口
- 内存泄露检测工具比较
- 使用 C++ 处理 JSON 数据交换格式
- BASH中字符串的处理
- [react] react怎么提高列表渲染的性能?
- 前端学习(3125):react-hello-react之类式组件里的构造器域props
- [vue] 如何解决vue打包vendor过大的问题?
- [css] css的属性content有什么作用呢?有哪些场景可以用到?
- 工作316:uni-修改其他页面的时间逻辑