太羞耻了,m n写反了(主要是样例n m相等)

建图方法比较高(ji)端(chu),对于可以加栅栏的地方连上1的边,然后求最小割即可

为了让代码优(suo)美(duan),我写了一个check,避免多次重复的时候犯错(简直是我这种mn都能打反的人必备)

 #include <cstdio>
#define INF 2147483647
int n,m,N=,h,t,zl,ans;
int a[][],fir[],d[],to[],flo[],nex[],l[];
inline void add(int x,int y,int z){ to[++N]=y;flo[N]=z;nex[N]=fir[x];fir[x]=N;
to[++N]=x;flo[N]=;nex[N]=fir[y];fir[y]=N;}
inline int min(int x,int y){ return(x<y)?x:y;}
inline void check(int x,int y,int X,int Y)
{
if(X== || Y== || X>n || Y>m) return;
if(a[x][y]!= && a[X][Y]!=) add((x-)*m+y,(X-)*m+Y,);
}
bool bfs()
{
for(int i=;i<=n*m+;i++) d[i]=;
for(h=,t=,l[]=,d[]=;h<=t;h++)
for(int i=fir[l[h]];i;i=nex[i])
if(!d[to[i]] && flo[i])
l[++t]=to[i],d[l[t]]=d[l[h]]+;
return d[n*m+];
}
int dfs(int now,int flow,int sum)
{
if(now==n*m+) return flow;
for(int i=fir[now];i && (sum<flow);i=nex[i])
if(d[to[i]]==d[now]+ && flo[i])
zl=dfs(to[i],min(flow-sum,flo[i]),),sum+=zl,flo[i]-=zl,flo[i^]+=zl;
if(sum==) d[now]=;
return sum;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
scanf("%d",&a[i][j]);
if(a[i][j]==) add(,(i-)*m+j,INF);
if(a[i][j]==) add((i-)*m+j,n*m+,INF);
}
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
check(i,j,i-,j),check(i,j,i+,j),check(i,j,i,j-),check(i,j,i,j+);
for(ans=;bfs();ans+=dfs(,INF,));
printf("%d\n",ans);
return ;
}

让我好好想想最近在犯什么错:

1.%d多打或少打

2.输入顺序没看清

3.行数和列数没分清

人生无望。。。我还是滚回普及组去吧

bzoj1412最小割的更多相关文章

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

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

  2. BZOJ1412 ZJOI2009 狼和羊的故事 【网络流-最小割】

    BZOJ1412 ZJOI2009 狼和羊的故事 Description “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和 ...

  3. 【BZOJ1412】狼和羊的故事(最小割)

    题意:将一个由0,1,2构成的矩阵里的1与2全部分割最少需要选取多少条边 n,m<=100 思路:裸的最小割模型 相邻的格子连容量为1的边(其实可以少连很多遍,1与1,2与2之间的边是没有意义的 ...

  4. LG2598/BZOJ1412 「ZJOI2009」狼和羊的故事 最小割

    问题描述 LG2598 BZOJ1412 题解 看到要把狼和羊两个物种分开 自然想到最小割. 发现\((x,y)\)可以向上下左右走以获得贡献,所以建边:\((x,y),(x-1,y)\),\((x, ...

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

    题目描述 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈 ...

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

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

  7. 【bzoj1412】[ZJOI2009]狼和羊的故事 网络流最小割

    题目描述 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈 ...

  8. bzoj1412: [ZJOI2009]狼和羊的故事(最小割)

    传送门 首先,考虑只有狼和羊怎么办.我们把源点向所有羊连边,容$inf$,所有狼向汇点连边,容$inf$,然后羊向周围所有的狼连边,容$1$.那么,只要求一个割就能把狼和羊给分开,求一个最小割就是答案 ...

  9. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

随机推荐

  1. bzoj2928: [Poi1999]飞弹

    惨啊…… 被卡常是一种什么感受&…… 很明显的分治. 我们首先可以找到所有点中的最低点,然后对所有点进行一次极角排序,选取一个点使得他各侧飞弹和地堡一样多,并对两侧继续进行分治. 很容易证明这 ...

  2. 【GitHub Desktop】MacOS和Win下配置及简单的使用

    一. GitHub介绍 1.GitHub 是为开发者提供 Git 仓库的托管服务.这是一个让开发者与朋友.同事.同学及陌生人共享代码的完美场所. 总结一下,GitHub 最大的特征是"面向人 ...

  3. Ubuntu14.04源

    Ubuntu14.04源:   来源: http://wiki.ubuntu.org.cn/Qref/Source (包含15.04.14.10.14.04.12.04.10.04的源)     Ub ...

  4. mysql基础类型知识总结

    Mysql知识回顾 http://www.educity.cn/wenda/596225.html http://blog.csdn.net/dyllove98/article/details/928 ...

  5. cmd连接mysql的方法详解(转载)

    连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登 ...

  6. JS获取URL参数

    $(function () { var action = getUrlParam("action"); alert(action) }); //根据URL中的参数获取值 funct ...

  7. addEventListener详解

    为什么需要addEventListener? 先来看一个片段: html代码 <div id="box">追梦子</div> 用on的代码 window.o ...

  8. jQuery中width、innerWidth、outerWidth的区别

    原文:摘自http://www.canaansky.com/blog/107/ 在css的盒子模型中,最内部是content area,然后是padding.border.margin 那么width ...

  9. tif文件导入postgresql

    raster2pgsql -I -F -N -999  文件名  数据库名 | psql -U postgres -d postgres

  10. .Net中Remoting通信机制简单实例

    .Net中Remoting通信机制 前言: 本程序例子实现一个简单的Remoting通信案例 本程序采用语言:c# 编译工具:vs2013工程文件 编译环境:.net 4.0 程序模块: Test测试 ...