ZJOI2009 狼和羊的故事
既然这题这么水,我就不写了……
挖掘栅栏的本质:只能建在相邻两个,且建好后使得狼和羊之间不存在通路。而割的定义是:使S集和T集不存在通路。而题目又要求建的栅栏最少,于是就是最小割问题了。
从源点向所有狼连一条∞的边,从所有羊向汇点连一条∞的边,这样就能保证狼和羊都在不同的点集里。然后再从狼到相邻的羊和空地,空地到相邻的空地和羊连一条流量为1的边,最大流求最小割即可。
或者将所有点向四周连边。。就是时间长了点 --hzwer
代码:(来自hzwer)
#include<iostream>
#include<cstdio>
#include<cstring>
#define inf 0x7fffffff
#define T 10001
using namespace std;
int head[],q[],h[];
int cnt=,ans,n,m;
int xx[]={,,,-},yy[]={,-,,},mp[][];
struct data{int to,next,v;}e[];
void ins(int u,int v,int w)
{e[++cnt].to=v;e[cnt].next=head[u];e[cnt].v=w;head[u]=cnt;}
void insert(int u,int v,int w)
{ins(u,v,w);ins(v,u,);}
bool bfs()
{
int t=,w=,i,now;
memset(h,-,sizeof(h));
q[]=;h[]=;
while(t<w)
{
now=q[t];t++;i=head[now];
while(i)
{
if(e[i].v&&h[e[i].to]==-)
{
h[e[i].to]=h[now]+;
q[w++]=e[i].to;
}
i=e[i].next;
}
}
return h[T]==-? :;
}
int dfs(int x,int f)
{
if(x==T)return f;
int w,used=,i;
i=head[x];
while(i)
{
if(e[i].v&&h[e[i].to]==h[x]+)
{
w=f-used;
w=dfs(e[i].to,min(w,e[i].v));
e[i].v-=w;
e[i^].v+=w;
used+=w;
if(used==f)return f;
}
i=e[i].next;
}
if(!used)h[x]=-;
return used;
}
void dinic(){while(bfs())ans+=dfs(,inf);}
void ini()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
scanf("%d",&mp[i][j]);
}
void build()
{
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
if(mp[i][j]==)insert(,(i-)*m+j,inf);
else if(mp[i][j]==)insert((i-)*m+j,T,inf);
for(int k=;k<;k++)
{
int nowx=i+xx[k],nowy=j+yy[k];
if(nowx<||nowx>n||nowy<||nowy>m||mp[i][j]==)continue;
if(mp[i][j]!=||mp[nowx][nowy]!=)
insert((i-)*m+j,(nowx-)*m+nowy,);
}
}
}
int main()
{
ini();
build();
dinic();
printf("%d",ans);
return ;
}
ZJOI2009 狼和羊的故事的更多相关文章
- bzoj1412: [ZJOI2009]狼和羊的故事
		
空地之间开始没有连然后一直WA...题意混乱...尴尬. #include<cstdio> #include<cstring> #include<iostream> ...
 - BZOJ 1412: [ZJOI2009]狼和羊的故事( 最小割 )
		
显然是最小割...把狼的领地连S, 羊的领地连T, 然后中间再连边, 跑最大流就OK了 -------------------------------------------------------- ...
 - P2598 [ZJOI2009]狼和羊的故事(网络流)
		
P2598 [ZJOI2009]狼和羊的故事 源点和所有狼连 $inf$ 的边 所有羊和汇点连 $inf$ 的边 所有点向四周连 $1$ 的边 这样所有狼和羊之间的边都被割掉了 统计最小割就好辣 #i ...
 - 洛谷 P2598 [ZJOI2009]狼和羊的故事 解题报告
		
P2598 [ZJOI2009]狼和羊的故事 题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" \(Orez\)听到这首歌, ...
 - 题解 P2598 【[ZJOI2009]狼和羊的故事】
		
P2598 [ZJOI2009]狼和羊的故事 题目描述 "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Orez听到这首歌,心想:狼 ...
 - 【BZOJ1412】[ZJOI2009]狼和羊的故事 最小割
		
[BZOJ1412][ZJOI2009]狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想: ...
 - BZOJ1412 ZJOI2009 狼和羊的故事 【网络流-最小割】
		
BZOJ1412 ZJOI2009 狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和 ...
 - BZOJ1412 [ZJOI2009]狼和羊的故事  【最小割】
		
1412: [ZJOI2009]狼和羊的故事 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3454 Solved: 1733 [Submit][ ...
 - P2598 [ZJOI2009]狼和羊的故事(最小割)
		
P2598 [ZJOI2009]狼和羊的故事 题目描述 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么 ...
 - 嘴巴题3 「BZOJ1412」[ZJOI2009] 狼和羊的故事
		
「BZOJ1412」[ZJOI2009] 狼和羊的故事 Description "狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......" Or ...
 
随机推荐
- C# 学习之旅(3) ---  会说话的简易计算器
			
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
 - Linux vi 中搜索关键字
			
当你用vi打开一个文件后,因为文件太长,如何才能找到你所要查找的关键字呢? 在vi里可没有菜单-〉查找 不过没关系,可以在命令模式下敲斜杆( / )这时在状态栏(也就是屏幕左下脚)就出现了 “/” 然 ...
 - Python操作RabbitMQ初体验(一)
			
由于想用Python实现一套分布式系统,来管理和监控CDN的内容与运行状态,误打误撞认识了RabbitMQ,推荐的人很多,如余锋<我为什么要选择RabbitMQ>等等. 在MQ这个词汇映入 ...
 - 拥抱ARM妹子 序章!ARM妹子~~ 哥我来啦!
			
一个负心汉即将移情别恋,从51转到ARM妹子啦?其实8是的,俺准备开后宫.哇——咔~咔~~.考虑功耗和成本等问题,只有51肯定是不够的,所以嘛~~(一脸坏笑)嘿嘿~~,ARM妹子俺追定了.出于对ARM ...
 - oracle 将科学计数法数据转换为非科学计数法数据
			
oracle 自定义函数: CREATE OR REPLACE FUNCTION ConvertNumeric(rawData VARCHAR2) --用于返回转换科学计算法dhx RETURN VA ...
 - DNF技能贴图的研究
			
一直在猜想DNF的技能贴图怎么贴的,靠在游戏里慢慢移动确定技能的偏移太费时间了.前段发现了“可视坐标生成”这软件,针对DNF改衣服,装备款式的小工具,就自己写了个类似的. 从图上看,技能的域中心点和人 ...
 - jvm 参数调优
			
FROM: http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html#CMSInitiatingOccupancyFraction ...
 - 在Hadoop分布式文件系统的索引和搜索
			
FROM:http://www.drdobbs.com/parallel/indexing-and-searching-on-a-hadoop-distr/226300241?pgno=3 在今天的信 ...
 - 【贪心】bzoj 3709:[PA2014]Bohater
			
3709: [PA2014]Bohater Time Limit: 5 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 653 Solved: ...
 - 【莫队】bzoj 3781,bzoj 2038,bzoj 3289
			
好像又有一个星期没更博客了.. 最近疯狂考试...唯一有点收获的就是学会了莫队这种神奇的算法.. 听起来很难..其实是一个很简单的东西.. 就是在区间处理问题时对于一个待求区间[L',R']通过之前求 ...