比较基本的复制点一个接收一个出边的网络流模型,

用自己向自己的边限制流出个数

注意细节:

1、判断是<1不是<0

2、n*m+

3、ij、kl

码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
using namespace std;
queue<int>q;
#define N 10000000
#define inf 1000000009
int tot=-1,xia[N],cnt,zhong[N],v[N],hou[N],yuan[N],d[N],s,t,i,j,k,l,n,m,dd;
char lin,ch[205][205];
void jia(int a,int b,int c)
{++tot,hou[tot]=yuan[a],yuan[a]=tot,zhong[tot]=b,v[tot]=c;
}
void jian(int a,int b,int c)
{
jia(a,b,c);
jia(b,a,0);
}
bool bfs()
{int i;memset(d,0x7f,sizeof(d));for(i=1;i<=t;i++)xia[i]=yuan[i];q.push(s);d[s]=0;while(!q.empty()){int st=q.front();q.pop();for(i=xia[st];i!=-1;i=hou[i]){int nd=zhong[i];if(!v[i]||d[nd]<inf)continue;d[nd]=d[st]+1;q.push(nd); }       }return d[t]<inf;}
int dfs(int o,int t,int limit)
{if(o==t||limit==0)return limit;int i,flow=0,f;for(i=xia[o];i!=-1;i=hou[i]){xia[o]=i;int nd=zhong[i];if(d[nd]==d[o]+1&&(f=dfs(nd,t,min(limit,v[i])))){flow+=f;limit-=f;v[i]-=f;v[i^1]+=f;           if(limit==0)break;}   }return flow;
}
int dinic()
{int daan=0;while(bfs()){daan+=dfs(s,t,inf);}    return daan;
}
int main()
{memset(yuan,-1,sizeof(yuan));
scanf("%d%d%d",&n,&m,&dd);
s=n*m*2+1;
t=n*m*2+2;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%c",&ch[i][j]);
while(ch[i][j]<'0'||ch[i][j]>'3')scanf("%c",&ch[i][j]);
}
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
scanf("%c",&lin);
while(lin!='.'&&lin!='L')scanf("%c",&lin);if(lin=='L'){++cnt;jian(s,(i-1)*m+j,1);    }}  for(i=1;i<=n;i++)for(j=1;j<=m;j++){jian((i-1)*m+j,n*m+(i-1)*m+j,ch[i][j]-'0');for(k=max(i-dd,1);k<=min(i+dd,n);k++)for(l=max(j-dd,1);l<=min(j+dd,m);l++) {if(fabs(k-i)+fabs(l-j)<=dd)jian(n*m+(i-1)*m+j,(k-1)*m+l,inf);}     if(i-dd<1||i+dd>n||j-dd<1||j+dd>m)jian(n*m+(i-1)*m+j,t,inf);        }printf("%d",cnt-dinic());
}

bzoj1066 [SCOI2007]蜥蜴 网络流复制点模型相关推荐

  1. BZOJ1066: [SCOI2007]蜥蜴

    1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 4506  Solved: 2305 [Submit][Statu ...

  2. [SCOI2007] 蜥蜴 (最大流)

    [SCOI2007] 蜥蜴 题目背景 07四川省选 题目描述 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外. 每行每列中相邻石柱的距离为1 ...

  3. bzoj 1066: [SCOI2007]蜥蜴(最大流)

    1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 4116  Solved: 2081 [Submit][Statu ...

  4. BZOJ 1066 POJ 2711 [SCOI2007]蜥蜴

    1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec   Memory Limit: 162 MB Submit: 2947   Solved: 1471 [ Submit][ S ...

  5. BZOJ1066【SCOI2007】蜥蜴 网络流

    [SCOI2007]蜥蜴 Description 在一个r行c列的网格地图中有一些高度不同的石柱,一些石柱上站着一些蜥蜴,你的任务是让尽量多的蜥蜴逃到边界外. 每行每列中相邻石柱的距离为1,蜥蜴的跳跃 ...

  6. LuoguP2472 SCOI2007 蜥蜴

    蒟蒻第二篇博客,恶补网络流之后决定整个活 题目链接 目录 一.模型建立 二.注意事项 三.AC代码 总结 一.模型建立 网络流 这道题的难点在于它的限制是在点上而不是在边上,那我们考虑如何把点的限制转 ...

  7. [SCOI2007]蜥蜴 (网格图经典四方向建边)

    题意: 在一个n*m的矩阵中,每个格子都有一定的高度,当高度为0时表示该格子不存在,现在这个矩阵中有若干只蜥蜴,每只蜥蜴跳到格子上时,该格子的高度会减一,每只蜥蜴可以跳跃直线距离不大于D的长度,问最少 ...

  8. 洛谷 - P2472 [SCOI2007]蜥蜴(最大流)

    题目链接:点击查看 题目大意:给出一个 n * m 的迷宫,每个位置都有一个耐久度,也就是至多经过 a[ i ][ j ] 位置 ( i , j ),现在迷宫中有一些蜥蜴,每一时刻在每一个位置至多有一 ...

  9. BZOJ 1066[SCOI2007]蜥蜴

    学了ISAP说我来做一道网络流的傻逼题吧然后自己变成了一个傻逼.. De了很久的bug然后发现我从源点向每只蜥蜴连了INF的边,喵喵喵? 最近写博客好像比较敷衍,还是说一下.每个柱子拆点,源点向每个有 ...

最新文章

  1. SAP PP ECM的生效日期如何影响工单?
  2. 划痕实验 迁移面积自动统计_从Jupyter迁移到合作实验室
  3. 下岗职工_下岗后我如何获得多位软件工程师的面试
  4. nacos 开启权限验证后 报错状态 403
  5. 蓝牙芯片排行_7月TWS 全球品牌出货量排行榜出炉
  6. oracle数据库dblink创建语句_3场直播丨达梦DM8数据库安装部署初体验、新基建下的国产数据库应用和发展趋势、Oracle外部表创建与使用...
  7. Spring restTemlate的使用
  8. CTF竞赛模式与训练平台
  9. 算法学习笔记(六) 二叉树和图遍历—深搜 DFS 与广搜 BFS
  10. 今天将IE升级到了7.0版
  11. 基于java的电子政务网的设计及开发
  12. Ubuntu好用的软件推荐
  13. 视频教程-零基础Python自动化办公(漫画版)-Python
  14. unity3d 取锚点位置_如何不靠看格子,确定一个字的首笔和后面每一笔画的位置?...
  15. 181008 逆向-inctf(load3r、Decoy)
  16. arduiono电子音乐代码_用ARM实现音乐电子相册
  17. @PersistenceContext和@Resource
  18. android判断webview加载完成,android webView判断是否加载完成的2种办法
  19. 小清新个人简历PPT模板
  20. 面试官问我G1回收器怎么知道你是什么时候的垃圾?

热门文章

  1. 七年级计算机考试知识点,七年级语文期中考试复习知识点整理
  2. Java虚拟机------JVM分析工具
  3. Kotlin学习笔记 第二章 类与对象 第十四 十五节 委托 委托属性
  4. java Stream 流
  5. html主要的骨架结构
  6. 高等组合学笔记(十五):容斥原理,错排问题
  7. R语言学习笔记(六)回归分析
  8. poj 2253 最短路变形——最大边的最小值
  9. 【前端基础知识】chrome安装React Devtools
  10. IDEA和VS code设置默认换行符为LF