bzoj1001: [BeiJing2006]狼抓兔子(初识是你最小割)
1001: [BeiJing2006]狼抓兔子
题目:传送门
题解:
听说这题当初是大难题...可惜当年没有网络流hahahha
现在用网络流的思想就很容易解决了嘛
给什么连什么,注意是双向边,然后跑最大流...AC
代码:
- #include<cstdio>
- #include<cstring>
- #include<cstdlib>
- #include<cmath>
- #include<algorithm>
- #define N 1100000
- using namespace std;
- struct node
- {
- int x,y,c,next,other;
- }a[];int len,last[];
- int n,m,head,tail,st,ed;
- void ins(int x,int y,int c)
- {
- int k1,k2;
- len++;k1=len;
- a[len].x=x;a[len].y=y;a[len].c=c;
- a[len].next=last[x];last[x]=len;
- len++;k2=len;
- a[len].x=y;a[len].y=x;a[len].c=c;
- a[len].next=last[y];last[y]=len;
- a[k1].other=k2;
- a[k2].other=k1;
- }
- int list[],h[];
- bool bt_h()
- {
- memset(h,,sizeof(h));h[st]=;
- list[]=st;head=;tail=;
- while(head!=tail)
- {
- int x=list[head];
- for(int k=last[x];k;k=a[k].next)
- {
- int y=a[k].y;
- if(h[y]== && a[k].c>)
- {
- h[y]=h[x]+;
- list[tail++]=y;
- }
- }
- head++;
- }
- if(h[ed]>)return true;
- return false;
- }
- int find_flow(int x,int flow)
- {
- if(x==ed)return flow;
- int s=,t;
- for(int k=last[x];k;k=a[k].next)
- {
- int y=a[k].y;
- if(h[y]==h[x]+ && a[k].c> && flow>s)
- {
- t=find_flow(y,min(a[k].c,flow-s));
- s+=t;
- a[k].c-=t;a[a[k].other].c+=t;
- }
- }
- if(s==)h[x]=;
- return s;
- }
- int main()
- {
- while(scanf("%d%d",&n,&m)!=EOF)
- {
- len=;memset(last,,sizeof(last));
- st=;ed=n*m;
- for(int i=;i<=n;i++)
- for(int j=;j<m;j++)
- {
- int t;
- scanf("%d",&t);
- ins((i-)*m+j,(i-)*m+j+,t);
- }
- for(int i=;i<n;i++)
- for(int j=;j<=m;j++)
- {
- int t;
- scanf("%d",&t);
- ins((i-)*m+j,i*m+j,t);
- }
- for(int i=;i<n;i++)
- for(int j=;j<m;j++)
- {
- int t;
- scanf("%d",&t);
- ins((i-)*m+j,i*m+j+,t);
- }
- int ans=;
- while(bt_h())ans+=find_flow(st,);
- printf("%d\n",ans);
- }
- return ;
- }
bzoj1001: [BeiJing2006]狼抓兔子(初识是你最小割)的更多相关文章
- [bzoj1001][BeiJing2006]狼抓兔子_网络流_最小割转对偶图
狼抓兔子 bzoj-1001 BeiJing2006 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还 ...
- BZOJ1001 BeiJing2006 狼抓兔子 【网络流-最小割】*
BZOJ1001 BeiJing2006 狼抓兔子 Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的,而且现在的兔子还比较 ...
- [BZOJ1001][BeiJing2006]狼抓兔子(最小割转最短路|平面图转对偶图)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 31805 Solved: 8494[Submit][ ...
- BZOJ1001: [BeiJing2006]狼抓兔子 [最小割 | 对偶图+spfa]
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 19528 Solved: 4818[Submit][ ...
- BZOJ1001: [BeiJing2006]狼抓兔子【最短路+对偶图】
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=1001 1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Se ...
- bzoj1001: [BeiJing2006]狼抓兔子 -- 最小割
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MB Description 现在小朋友们最喜欢的"喜羊羊与灰太狼 ...
- BZOJ1001: [BeiJing2006]狼抓兔子(优化的dinic或转化对偶图求最短路)
1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 30078 Solved: 7908[Submit][ ...
- BZOJ_1001_狼抓兔子_(平面图求最小割+对偶图求最短路)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1001 1001: [BeiJing2006]狼抓兔子 Time Limit: 15 Sec ...
- BZOJ1001[BeiJing2006]狼抓兔子最小割網絡流
Description 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一 ...
随机推荐
- DQL命令(查询)
select *或字段1,字段2... from 表名 [where 条件] 提示:*符号表示取表中所有列:没有where语句表示 查询表中所有记录:有wh ...
- 2015 Multi-University Training Contest 5 hdu 5349 MZL's simple problem
MZL's simple problem Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- WinServer-win7通过powershell操作AD-从接触到放弃
额....我想在win7上练习AD的powershell命令 看了这篇帖子,他们说在WIN7上没法导入powershell的模块,只能在SERVER 上弄 https://social.technet ...
- CSS学习(四)
伪类(Pseudo-classes) CSS伪类是用来添加一些选择器的特殊效果. 伪类的语法: selector:pseudo-class {property:value;} CSS类也可以使用伪类: ...
- sigprocmask和信号阻塞
注意阻塞和忽略,是有区别的. 阻塞只是暂时的,忽略是就没了. 参数:how:用于指定信号修改的方式,可能选择有三种:SIG_BLOCK //加入信号到进程屏蔽.SIG_UNBLOCK //从进程屏蔽里 ...
- FPGA中亚稳态——让你无处可逃
1. 应用背景 1.1 亚稳态发生原因 在FPGA系统中,如果数据传输中不满足触发器的Tsu和Th不满足,或者复位过程中复位信号的释放相对于有效时钟沿的恢复时间(recovery ti ...
- JAVA设计模式之【迭代器模式】
迭代器模式 聚合类,聚合对象 电视机遥控器,迭代器,遍历局和对象中的成员 灵活新增遍历方法 将负责遍历数据的方法提取出来,封装到专门的类中,实现数据存储和数据遍历分离.这就是迭代器模式. 灵活性,可扩 ...
- 搞定ubuntu下环境变量的配置
Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. ...
- MySQL学习(二)——SQL语句创建删除修改以及中文乱码问题
一.对数据库的操作 1.创建一个库 create database 库名; 创建带有编码的:create database 库名 character set 编码; 查看编码:show create ...
- Caffe Loss分析
Caffe_Loss 损失函数为深度学习中重要的一个组成部分,各种优化算法均是基于Loss来的,损失函数的设计好坏很大程度下能够影响最终网络学习的好坏.派生于 \(LossLayer\),根据不同的L ...