首先,题目目的就是为了分割狼群和羊群,即建立超级源和超级汇求最小割从而转化成用网络流来处理。

如果没有空地,那么就是简单的二分图最大匹配,但是题中有空地的出现,所以需要在点与点之间建立双向边(不算后向弧),这样才能满足题意(我一开始挂到了这里)

理解透了还是很简单的

代码付上

 #include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <iostream>
using namespace std;
#define N 105
#define T 10005
#define S 0
int head[N*N],dep[N*N],cnt,n,m;
struct node
{
int to,next,val;
}e[N*N*N];
inline void add(int x,int y,int z)
{
e[cnt].to=y;
e[cnt].val=z;
e[cnt].next=head[x];
head[x]=cnt++;
return ;
}
inline void insert(int x,int y,int z)
{
add(x,y,z);
add(y,x,);
return ;
}
int bfs()
{
memset(dep,-,sizeof(dep));
queue <int >q;
q.push(S);
dep[S]=;
while(!q.empty())
{
int x=q.front();q.pop();
for(int i=head[x];i!=-;i=e[i].next)
{
int to1=e[i].to;
if(dep[to1]==-&&e[i].val)
{
q.push(to1);
dep[to1]=dep[x]+;
}
}
}
return dep[T]==-?:;
}
int dfs(int x,int maxf)
{
if(!maxf)return ;
if(x==T)return maxf;
int tflow=maxf,nowf;
for(int i=head[x];i!=-;i=e[i].next)
{
int to1=e[i].to;
if(dep[to1]==dep[x]+&&e[i].val&&dep[x]!=-)
{
nowf=dfs(to1,min(e[i].val,tflow));
if(!nowf)
{
dep[to1]=-;
continue;
}
tflow-=nowf;
e[i].val-=nowf,e[i^].val+=nowf;
if(!tflow)break;
}
}
dep[x]=-;
return maxf-tflow;
}
int map[N][N];
int dx[]={,,,-};
int dy[]={,,-,};
int main()
{
memset(head,-,sizeof(head));
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
int x;
scanf("%d",&x);
map[i][j]=x;
if(x==)insert((i-)*m+j,T,<<);
if(x==)insert(S,(i-)*m+j,<<);
}
}
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
for(int k=;k<;k++)
{
int ty=dx[k]+i,tx=dy[k]+j;
if(ty==||ty==n+)continue;
if(tx==||tx==m+)continue;
int f=(i-)*m+j,t=(ty-)*m+tx;
insert(f,t,);
}
}
}
int ans=;
while(bfs())
{
ans+=dfs(S,<<);
}
printf("%d\n",ans);
return ;
}

BZOJ 1412 狼和羊的故事的更多相关文章

  1. [BZOJ 1412] 狼与羊的故事

    Link: BZOJ 1412 传送门 Solution: 非常明显的最小割模型: 将所有点分成两个互不相邻的点集,且要求代价最小 建图: $<S,sheep,INF>$ $<wol ...

  2. [BZOJ 1412][ZJOI 2009] 狼和羊的故事

    题目大意 有一个 (n times m) 的网格,每一个格子上是羊.狼.空地中的一种,羊和狼可以走上空地.现要在格子边上建立围栏,求把狼羊分离的最少围栏数. (1 leqslant n, ; m le ...

  3. BZOJ 1412: [ZJOI2009]狼和羊的故事( 最小割 )

    显然是最小割...把狼的领地连S, 羊的领地连T, 然后中间再连边, 跑最大流就OK了 -------------------------------------------------------- ...

  4. bzoj1412: [ZJOI2009]狼和羊的故事

    空地之间开始没有连然后一直WA...题意混乱...尴尬. #include<cstdio> #include<cstring> #include<iostream> ...

  5. BZOJ1412 [ZJOI2009]狼和羊的故事 【最小割】

    1412: [ZJOI2009]狼和羊的故事 Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 3454  Solved: 1733 [Submit][ ...

  6. 【BZOJ1412】狼和羊的故事(网络流)

    [BZOJ1412]狼和羊的故事(网络流) 题面 Description "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Orez听 ...

  7. P2598 [ZJOI2009]狼和羊的故事(网络流)

    P2598 [ZJOI2009]狼和羊的故事 源点和所有狼连 $inf$ 的边 所有羊和汇点连 $inf$ 的边 所有点向四周连 $1$ 的边 这样所有狼和羊之间的边都被割掉了 统计最小割就好辣 #i ...

  8. 洛谷 P2598 [ZJOI2009]狼和羊的故事 解题报告

    P2598 [ZJOI2009]狼和羊的故事 题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" \(Orez\)听到这首歌, ...

  9. 题解 P2598 【[ZJOI2009]狼和羊的故事】

    P2598 [ZJOI2009]狼和羊的故事 题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Orez听到这首歌,心想:狼 ...

随机推荐

  1. jQuery插件学习基础

    1.给jQuery添加全局的函数: $.zgz={  fn1:function(){ alert('我是刚设置的第一个全局函数') },fn2:function(){ alert('我是刚设置的第二个 ...

  2. miniUI input设置默认值,js获取年月注意事项,数据库nvl函数使用

    2017-6-5周一,今天碰到的一个需求是:两税附征模块进入页面筛选时间默认值为当前月的上一个月,并根据筛选结果显示数据,我们用的框架为miniUI. 坑1: 默认值设置,刚刚接触miniUI,对里面 ...

  3. htmlDOM操作1

    DOM 是 Document Object Model(文档对象模型)的缩写. HTML 的标准对象模型 HTML 的标准编程接口 HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它 ...

  4. Oracle技术面试问题

    这也许是你一直期待的文章,在关注这部分技术问题的同时,请务必阅读有关面试中有关个人的问题和解答.这里的回答并不是十分全面,这些问题可以通过多个 角度来进行解释,也许你不必在面试过程中给出完全详尽的答案 ...

  5. HTMLConverter使用实例(转)

    ---- 本来,Applet的概念相当简单——只要在Web页面中加入一个< APPLET >标记就可以了.浏览器一遇到这个标记,就会下载对应的 Applet类文件,并启动自己的解释器运行这 ...

  6. Web 前台优化

    大型网站--前端性能优化和规范 2013-10-28 09:00 by 贤达, 2769 阅读, 10 评论, 收藏, 编辑   Web性能涉及的范围太广,但一般web开发者在程序上线以后很多都曾遇到 ...

  7. 使用LSTM和Softmx来进行意图识别

    前言 在前面我们大致介绍了什么是意图识别,把这个问题抽象出来其实是一个分类问题.在结构上面,我们使用LSTM来提取特征,Softmax来进行最后的多分类.由于语料的限制,我们目前仅考虑电台,音乐,问答 ...

  8. Github Page 绑定域名

    http://kyle.xlau.org/posts/github-cname.html CNAME 创建一个CNAME文件,内容是你的域名,如: xlau.org 然后把此文件添加到Github仓库 ...

  9. C 四则运算表达式解析器

    下载实例:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1074 程序主要包括:基础结构定义.词法分析.语法分 ...

  10. OpenCASCADE Texture Mapping

    OpenCASCADE Texture Mapping eryar@163.com Abstract. 纹理贴图技术的出现和流行是图形显示技术的一个非常重要的里程碑,直接影响3D技术从工业进入娱乐领域 ...