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

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

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

  1. #include <cstdio>
  2. #define INF 2147483647
  3. int n,m,N=,h,t,zl,ans;
  4. int a[][],fir[],d[],to[],flo[],nex[],l[];
  5. inline void add(int x,int y,int z){ to[++N]=y;flo[N]=z;nex[N]=fir[x];fir[x]=N;
  6. to[++N]=x;flo[N]=;nex[N]=fir[y];fir[y]=N;}
  7. inline int min(int x,int y){ return(x<y)?x:y;}
  8. inline void check(int x,int y,int X,int Y)
  9. {
  10. if(X== || Y== || X>n || Y>m) return;
  11. if(a[x][y]!= && a[X][Y]!=) add((x-)*m+y,(X-)*m+Y,);
  12. }
  13. bool bfs()
  14. {
  15. for(int i=;i<=n*m+;i++) d[i]=;
  16. for(h=,t=,l[]=,d[]=;h<=t;h++)
  17. for(int i=fir[l[h]];i;i=nex[i])
  18. if(!d[to[i]] && flo[i])
  19. l[++t]=to[i],d[l[t]]=d[l[h]]+;
  20. return d[n*m+];
  21. }
  22. int dfs(int now,int flow,int sum)
  23. {
  24. if(now==n*m+) return flow;
  25. for(int i=fir[now];i && (sum<flow);i=nex[i])
  26. if(d[to[i]]==d[now]+ && flo[i])
  27. zl=dfs(to[i],min(flow-sum,flo[i]),),sum+=zl,flo[i]-=zl,flo[i^]+=zl;
  28. if(sum==) d[now]=;
  29. return sum;
  30. }
  31. int main()
  32. {
  33. scanf("%d%d",&n,&m);
  34. for(int i=;i<=n;i++)
  35. for(int j=;j<=m;j++)
  36. {
  37. scanf("%d",&a[i][j]);
  38. if(a[i][j]==) add(,(i-)*m+j,INF);
  39. if(a[i][j]==) add((i-)*m+j,n*m+,INF);
  40. }
  41. for(int i=;i<=n;i++)
  42. for(int j=;j<=m;j++)
  43. check(i,j,i-,j),check(i,j,i+,j),check(i,j,i,j-),check(i,j,i,j+);
  44. for(ans=;bfs();ans+=dfs(,INF,));
  45. printf("%d\n",ans);
  46. return ;
  47. }

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

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. [原创]CSS3打造动态3D气球

    周末在江边晨跑的时候发现很多 当时心血来潮就想,应该可以在网页中实现一下 这几天得闲就做了一下,效果如下 (尽量在最新版本的chrome或者firefox中查看) demo下载在文章最后 预览 --& ...

  2. java json数据的处理

    // 返回documentBuilderFactory对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); ...

  3. Activity系列讲解---返回结果的处理

    设想一下:由当前Activity跳转到其它Activity,从其它Activity再返回到当前Activity时,如何获取其它Activity存放的数据?下面用一个例子讲解, 点击selsect按钮跳 ...

  4. Linux远程执行Shell命令或脚本

    ## 远程执行shell命令 ssh [user]@[server] '[command]' # eg. ssh root@192.168.1.1 'uptime' ## 远程执行本地shell脚本 ...

  5. DIV+CSS布局

    宽度自适应两列布局 <!DOCTYPE html> <html> <head> <meta charset="gbk"> <t ...

  6. JSP复习整理(二)基本语法

    最基础的整理.. 一.语句声明 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

  7. CA扫盲的巅峰之作!!!

    ★ 先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥.晦涩.俺先拿一个通俗的例子来说事儿. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 ...

  8. tp框架实现验证码

    今天来看一个小插件. tp框架是怎么实现验证码的. 又到了我们千篇一律的时候了,首先呢,先做一个用来显示的html界面名为:zhuce.html <!DOCTYPE html PUBLIC &q ...

  9. IDEA构建一个mybatis项目

    目录结构如下: 在pom.xml中配置需要的jar包 <dependencies> <dependency> <groupId>org.mybatis</gr ...

  10. 111. for(元素变量x:遍历对象obj)

    package com.chongrui.test;/* * for(元素变量x:遍历对象obj){ * 引用X的java语句 *  * } *  *  * */public class test { ...