【BZOJ 1412】[ZJOI2009]狼和羊的故事
Description
Input
Output
Sample Input
2 2
1 1
Sample Output
数据范围
10%的数据 n,m≤3
30%的数据 n,m≤20
100%的数据 n,m≤100
- #include<cstdio>
- #include<cstring>
- #include<cmath>
- #include<iostream>
- using namespace std;
- const int inf=,N=;
- int fx[]={,,,-},fy[]={,-,,};
- struct ee{int to,next,f;}e[];
- int head[N*N],q[N**N],dis[N*N],a[N][N];
- int S,T,n,m,cnt=,ans,w;
- void ins(int u,int v,int f){
- e[++cnt].to=v;e[cnt].f=f;e[cnt].next=head[u];head[u]=cnt;
- e[++cnt].to=u;e[cnt].f=;e[cnt].next=head[v];head[v]=cnt;
- }
- bool bfs(){
- for (int i=;i<=T;i++) dis[i]=inf;
- int h=,t=,now;
- q[]=S;dis[S]=;
- while(h!=t){
- now=q[++h];
- for (int i=head[now];i;i=e[i].next){
- int v=e[i].to;
- if (e[i].f&&dis[now]+<dis[v]){
- dis[v]=dis[now]+;
- if (v==T)return ;
- q[++t]=v;
- }
- }
- }
- if (dis[T]==inf) return ; return ;
- }
- int dinic(int now,int f){
- if (now==T) return f;
- int rest=f;
- for (int i=head[now];i;i=e[i].next){
- int v=e[i].to;
- if (e[i].f&&dis[v]==dis[now]+&&rest){
- int t=dinic(v,min(rest,e[i].f));
- if (!t) dis[v]=;
- e[i].f-=t;
- e[i^].f+=t;
- rest-=t;
- //if(t) printf("%d %d %d\n",now,v,e[i].f);
- }
- }
- return f-rest;
- }
- int main(){
- scanf("%d%d",&n,&m);
- S=,T=n*m+;
- for(int i=;i<=n;i++)
- for(int j=;j<=m;j++)
- scanf("%d",&a[i][j]);
- for(int i=;i<=n;i++) for(int j=;j<=m;j++)
- if(a[i][j]==) ins(S,(i-)*m+j,inf);
- for(int i=;i<=n;i++) for(int j=;j<=m;j++)
- if(a[i][j]==) ins((i-)*m+j,T,inf);
- for(int i=;i<=n;i++) for(int j=;j<=m;j++){
- if(a[i][j]==) {
- for(int ii=;ii<;ii++) {
- int nx=i+fx[ii],ny=j+fy[ii];
- if(nx>n||nx<||ny>m||ny<||a[nx][ny]==) continue;
- ins((i-)*m+j,(nx-)*m+ny,);
- }
- }
- else if(a[i][j]==){
- for(int ii=;ii<;ii++) {
- int nx=i+fx[ii],ny=j+fy[ii];
- if(nx>n||nx<||ny>m||ny<||a[nx][ny]==) continue;
- ins((i-)*m+j,(nx-)*m+ny,);
- }
- }
- }
- while(bfs())
- ans+=dinic(S,inf);
- printf("%d",ans);
- }
【BZOJ 1412】[ZJOI2009]狼和羊的故事的更多相关文章
- BZOJ 1412: [ZJOI2009]狼和羊的故事( 最小割 )
显然是最小割...把狼的领地连S, 羊的领地连T, 然后中间再连边, 跑最大流就OK了 -------------------------------------------------------- ...
- BZOJ 1412: [ZJOI2009]狼和羊的故事【网络流】
Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! O ...
- bzoj 1412 [ZJOI2009]狼和羊的故事(最小割)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1412 [题意] 在一个n*m的格子中,将羊和狼隔开的最小代价. [思路] 最小割. 由 ...
- bzoj 1412: [ZJOI2009]狼和羊的故事
http://www.lydsy.com/JudgeOnline/problem.php?id=1412 超级源点连向所有的狼,超级汇点连向所有羊,流量为INF 相邻连边流量为1,最小割 #inclu ...
- BZOJ 1412 [ZJOI2009]狼和羊的故事 | 网络流
显然是个最小割嘛! 一开始我是这么建图的: 源点向狼连INF 羊向汇点连INF 每两个相邻格子间连双向边,边权为1 然后T成狗 后来我是这么建图的: 源点向狼连INF 羊向汇点连INF 狼和空地向相邻 ...
- 1412. [ZJOI2009]狼和羊的故事【最小割】
Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! O ...
- 1412: [ZJOI2009]狼和羊的故事
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4017 Solved: 2037[Submit][Status][Discuss] Descript ...
- bzoj1412: [ZJOI2009]狼和羊的故事
空地之间开始没有连然后一直WA...题意混乱...尴尬. #include<cstdio> #include<cstring> #include<iostream> ...
- BZOJ1412 [ZJOI2009]狼和羊的故事 【最小割】
1412: [ZJOI2009]狼和羊的故事 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3454 Solved: 1733 [Submit][ ...
- P2598 [ZJOI2009]狼和羊的故事(网络流)
P2598 [ZJOI2009]狼和羊的故事 源点和所有狼连 $inf$ 的边 所有羊和汇点连 $inf$ 的边 所有点向四周连 $1$ 的边 这样所有狼和羊之间的边都被割掉了 统计最小割就好辣 #i ...
随机推荐
- Url几个常用的函数
parse_url() 本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分. 本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分.不完整的 URL ...
- saltstack实战4--综合练习3
Saltstack配置管理-业务引用haproxy 在业务模块里写它的配置 各个业务是不同的,这里有差异性,所以没写在配置模块里. 对minion02也执行安装haproxy [root@master ...
- ENVI/IDL与ArcGIS集成开发的三种途径
转载:本文来自ENVI5.0-IDL8.2系列产品白皮书_201303.PDF(Esri中国官网可下载)中P7-P10 ENVI 是一个非常开放的平台,提供一个健全的函数库,几乎涵盖ENVI 平台大部 ...
- 今天用css做了一个QQ登录页面
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Sublime Text—安装
一.简介 市面上的编辑器纷繁复杂各有优点,好用的编辑器能让你工作事半功倍,先简单介绍下本文主角Sublime Text编辑器,下面简称Sublime. 1.可用于 Windows.Mac OS X 和 ...
- SQL<>0查询不到NUll的值
这几天遇到这样一个问题,sql中写<>0,刚好某个记录是NULL,道理上是满足<>0的啊,可是就是抽不出来,关于这个问题,到处找了点资料,算是这里 写一个总结出来. 用java ...
- ASP.NET网站前端页面的复制
网络普及的时代,遇到问题的首要解决方案并不是问人,而是找度娘.当我们找一些技术性的问题时,会发现很多解决方案在博客里,看看博主发表的博客总是惊叹不已,想要自己也有这么一个好习惯,把学到的东西以自己的方 ...
- 第四十二篇、自定义Log打印
1.在Xcode 8出来之后,需要我们去关闭多余的日志信息打印 2.在开发的过程中,打印调试日志是一项比不可少的工程,但是在iOS 10中NSLog打印日志被屏蔽了,就不得不使用自定义Log 3.去掉 ...
- PHP标签的格式
PHP标签的格式: 1.xml格式(推荐的,标准的标记) <?php php代码?> 示例: 2.短格式 <? php代码 ?> 此种格式需要在php.ini中配置 示例 ...
- Zookeeper-集群环境搭建
一般为单数台机器,操作系统为linux. zookeeper为java编写,所以必须有java的运行环境. 下载地址:http://mirrors.hust.edu.cn/apache/zookeep ...