P2598 [ZJOI2009]狼和羊的故事

源点和所有狼连 $inf$ 的边

所有羊和汇点连 $inf$ 的边

所有点向四周连 $1$ 的边

这样所有狼和羊之间的边都被割掉了

统计最小割就好辣

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<queue>
  5. using namespace std;
  6. #define N 100005
  7. #define inf 100000005
  8. const int d1[]={,,-,};
  9. const int d2[]={,,,-};
  10. int n,m,w,d[N],cur[N],S,T; bool vis[N];
  11. queue <int> h;
  12. int cnt=,hd[N],nxt[N],ed[N],poi[N],val[N];
  13. inline void adde(int x,int y,int v){
  14. nxt[ed[x]]=++cnt, hd[x]=hd[x]?hd[x]:cnt,
  15. ed[x]=cnt, poi[cnt]=y, val[cnt]=v;
  16. }
  17. inline void link(int x,int y,int v){adde(x,y,v),adde(y,x,);}
  18. inline int id(int x,int y){return (x-)*m+y;}
  19. bool bfs(){
  20. memset(vis,,sizeof(vis));
  21. h.push(S); vis[S]=;
  22. while(!h.empty()){
  23. int x=h.front(); h.pop();
  24. for(int i=hd[x];i;i=nxt[i]){
  25. int to=poi[i];
  26. if(!vis[to]&&val[i])
  27. vis[to]=,d[to]=d[x]+,h.push(to);
  28. }
  29. }return vis[T];
  30. }
  31. int dfs(int x,int a){
  32. if(x==T||a==) return a;
  33. int F=,f;
  34. for(int i=cur[x];i;i=nxt[i]){
  35. cur[x]=i;int to=poi[i];
  36. if(d[to]==d[x]+&&(f=dfs(to,min(a,val[i])))>)
  37. a-=f,F+=f,val[i]-=f,val[i^]+=f;
  38. }return F;
  39. }
  40. int dinic(){
  41. int re=;
  42. while(bfs()){
  43. for(int i=;i<=T;++i) cur[i]=hd[i];
  44. re+=dfs(S,inf);
  45. }return re;
  46. }
  47. void draw(int x,int y){
  48. scanf("%d",&w); int p=id(x,y);
  49. for(int i=;i<;++i){
  50. int r1=x+d1[i],r2=y+d2[i];
  51. if(r1<||r1>n||r2<||r2>m) continue;
  52. link(p,id(r1,r2),);
  53. }
  54. if(w==) link(S,p,inf);
  55. if(w==) link(p,T,inf);
  56. }
  57. int main(){
  58. scanf("%d%d",&n,&m);
  59. S=n*m+; T=S+;
  60. for(int i=;i<=n;++i)
  61. for(int j=;j<=m;++j)
  62. draw(i,j);
  63. printf("%d",dinic());
  64. return ;
  65. }

P2598 [ZJOI2009]狼和羊的故事(网络流)的更多相关文章

  1. 洛谷$P2598\ [ZJOI2009]$狼和羊的故事 网络流

    正解:网络流 解题报告: 传送门! 昂显然考虑最小割鸭$QwQ$,就考虑说每个土地要么属于羊要么属于狼,然后如果一条边上是栅栏一定是相邻两边所属不同. 所以考虑给所有羊向$S$连$inf$,所有狼向$ ...

  2. P2598 [ZJOI2009]狼和羊的故事(最小割)

    P2598 [ZJOI2009]狼和羊的故事 说真的,要多练练网络流的题了,这么简单的网络流就看不出来... 题目要求我们要求将狼和羊分开,也就是最小割,(等等什么逻辑...头大....) 我们这样想 ...

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

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

  4. P2598 [ZJOI2009]狼和羊的故事(最小割)

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

  5. 洛谷P2598 [ZJOI2009]狼和羊的故事 题解

    题目链接: https://www.luogu.org/problemnew/show/P2598 分析: 我们知道此题的目的是将狼和羊分割开,很容易想到狼在S,羊在T中. 首先,我们可以在狼,羊,空 ...

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

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

  7. 洛谷 P2598 [ZJOI2009]狼和羊的故事

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

  8. 洛谷P2598 [ZJOI2009]狼和羊的故事

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

  9. BZOJ 1412 [ZJOI2009]狼和羊的故事 | 网络流

    显然是个最小割嘛! 一开始我是这么建图的: 源点向狼连INF 羊向汇点连INF 每两个相邻格子间连双向边,边权为1 然后T成狗 后来我是这么建图的: 源点向狼连INF 羊向汇点连INF 狼和空地向相邻 ...

随机推荐

  1. php 5.6,7.0静态方法调用和new调用方法性能差距

    windows7 64 机器I5 8G内存,128G SSD 吐槽一下,win10内存的消耗,真的可怕 测试代码 class staticTest { public function test() { ...

  2. pe文件头详解

  3. Linux技术栈整理一:系统体系结构

    Linux操作系统必备的硬件构造: CPU 主板 显卡 硬盘 网卡 外设(键鼠-输入设备 / 显示器-输出设备) 内核管理调度: 内核体系结构: 来源于:极客专栏

  4. python摸爬滚打之day28----黏包处理

    1.缓冲区和subprocess模块 1.1  缓冲区( 当send()内容超过输入缓冲区大小或recv()接收内容超过输出缓冲区大小时旧版本(py3.5以前)是会直接报错的, py3.5以后如果出错 ...

  5. SpringBoot项目修改html后不即时编译

    springboot templates 下的 html 修改后无法达到即时编译的效果,搜索资料后记录笔记.原文地址:https://www.cnblogs.com/jiangbei/p/843939 ...

  6. php7.2连接Sqlserver2008 r2

    下载Sql Server PHP扩展 Microsoft Drivers for PHP for SQL Server https://github.com/Microsoft/msphpsql/re ...

  7. H3C交换机引发的奇葩故障

    设备:H3C S5120-28P-SI 故障:某个交换机的接口速率只有100Mbps. 描述:这个故障还是很特别的,因为按普通的测试办法很难第一时间判断是交换机的固件问题,我也是做了几乎所有外围设备和 ...

  8. 405 Method Not Allowed error with PUT or DELETE Request on IIS Server

    昨天手贱去一台服务器上装了Webdav. 一开始以为这个报错是跨域问题, 最近一直遇到用自动的publish发布到FTP出问题也就没想到是Webdav的问题 而且这东西装了还不能删除 处理办法 IIS ...

  9. 【PY】Python3.7+Anaconda3 + PyQt5 + Eric6

    Anaconda下载地址:https://www.continuum.io/downloads pip install pyenchant pip install QScintilla pip ins ...

  10. MongoDB系列----mongostat

    mongostat是mongodb自带的监测工具,位于bin目录下.能用于实时监测mongodb的运行状态.在mongodb运行出现问题需要检测的时候应该优先考虑使用mongostat查看mongo运 ...