灌水法:

Flood Fill 直译为大水漫灌,会造成土地盐碱化。。。。。。

但是,在OI中,灌水不失为水搜索的一种好方法呢~~

灌水的思想:

灌水的思想其实就是从一个点(水源)出发,将符合条件可以到达(水可以灌到的地方)的点打标记,或者说染色。然后我们就可以通过染色的情况来处理一些问题。

空说理论没什么意义,结合一个例(shui)题说一下吧:

POJ2386 Lake Counting

题目简述:

给你一张n*m二维图,由"W"和"."组成,"."表示陆地,"W"表示水。水不流动(难度低到爆表的表现),要求求出水坑的个数(八连块)。

题解:

灌水啊~~

我们用vis[][]来记录是否找过(就是染色),每找到一个W且没有染过色的我们就从这个点灌水染色,且每次找到这样一个点就cnt++;最后输出cnt就是统计出来的数目了。

下面是很水很水的代码:

 1 #include<iostream>
 2 using namespace std;
 3 int n,m;
 4 char a[105][105];
 5 int cnt=0;
 6 bool vis[105][105];
 7 void flood(int x,int y)
 8 {
 9     if(x>n || x<1 || y<1 || y>m)return;
10     vis[x][y]=true;
11     if(!vis[x][y+1] && a[x][y+1]=='W')flood(x,y+1);
12     if(!vis[x][y-1] && a[x][y-1]=='W')flood(x,y-1);
13     if(!vis[x+1][y] && a[x+1][y]=='W')flood(x+1,y);
14     if(!vis[x-1][y] && a[x-1][y]=='W')flood(x-1,y);
15     if(!vis[x+1][y+1] && a[x+1][y+1]=='W')flood(x+1,y+1);
16     if(!vis[x-1][y-1] && a[x-1][y-1]=='W')flood(x-1,y-1);
17     if(!vis[x+1][y-1] && a[x+1][y-1]=='W')flood(x+1,y-1);
18     if(!vis[x-1][y+1] && a[x-1][y+1]=='W')flood(x-1,y+1);
19 }
20 int main()
21 {
22     cin>>n>>m;
23     for(int i=1;i<=n;i++)
24     {
25         for(int j=1;j<=m;j++)
26         {
27             cin>>a[i][j];
28         }
29     }
30     for(int i=1;i<=n;i++)
31     {
32         for(int j=1;j<=m;j++)
33         {
34             if(!vis[i][j] && a[i][j]=='W')
35             {
36                 cnt++;
37                 flood(i,j);
38             }
39         }
40     }
41     cout<<cnt;
42     return 0;
43 }

View Code

本人弱弱,求指教。

转载于:https://www.cnblogs.com/Skyvot/p/4036452.html

灌水导论——灌水法初步相关推荐

  1. 史上最强灌水:奇葩的MEGA 精选 科学网薛宇老师

    http://blog.sciencenet.cn/blog-404304-725339.html 做学术的人,如果不是全部,那起码99.99...%的人绝对是强烈反感灌水.所以前辈们总是循循善诱的教 ...

  2. BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1619 题意: 给你一个n*m的地形图,位置(x,y)的海拔为h[x][y]. 一个山顶的定 ...

  3. byr论坛灌水小工具

    原来写过一个模拟登陆byr论坛的脚本:一个CURL模拟登陆论坛的脚本+cookie伪造的方法 这次改了改,就成了一个小小的灌水机器人. 直接贴代码了: <?php /*** @author : ...

  4. 二本学生连发10篇SCI直博香港城大,被质疑「灌水」,本人回应!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文来源:青塔人才.知乎Molecule 7月10日,来自徐州工程学 ...

  5. 别再SOTA了,那叫“微调”!Science发文炮轰论文灌水

    点击上方"视学算法",选择加"星标"置顶 重磅干货,第一时间送达 金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI AI算法的发展,真有那么迅猛吗? ...

  6. 同盾反欺诈云防垃圾灌水帖体验分享

    年初将留言本改成了松松论坛,解决了留言本很多问题,也有了互动性,增强了粘性. 不过随后遇到了很多问题,尤其是垃圾贴的问题困扰了我们很久,有一段时间有人用论坛群发器发布了很多垃圾贴,原本只有几千条的帖子 ...

  7. 丢人现眼……GitHub阿波罗11号代码仓库惨遭中文灌水

    问耕 发自 凹非寺 量子位 出品 | 公众号 QbitAI 这不是一件光彩的事情. 昨天登上GitHub趋势热榜第一的阿波罗11号(Apollo 11)代码仓库,获得了3万多标星称赞,但也同时惨遭中文 ...

  8. bzoj1601【Usaco2008 Oct】灌水

    1601: [Usaco2008 Oct]灌水 Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 1589  Solved: 1035 [Submit][ ...

  9. bzoj1601 [Usaco2008 Oct]灌水

    Description Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. ...

最新文章

  1. 2018年JavaWeb和移动程序员学习的12个框架
  2. puppet全方位学习之总结
  3. android BSP
  4. Java重载遇到泛型
  5. 编译和使用APUE的源码
  6. jquery框架分析-构造jquery对象初步
  7. 北林oj-算法设计与分析-Simple Count(C++,思路+代码)
  8. 驱动AI产业“第二增长曲线”,清华系RealAI发布首个企业级隐私保护机器学习平台与升级版AI模型杀毒软件
  9. 服务器系统咋关机呀,各种服务器系统的关机
  10. php pdo连接oracle乱码,PHP编程:php pdo oracle中文乱码的快速解决方法
  11. CPA十二--外币会计报表折算的方法(转载)
  12. 道闸雷达感应技术使用,智能感应存在,飞睿科技毫米波雷达
  13. 计算机软技能,在个人简历中有哪些软技能可以写?
  14. Win7和CentOS7双系统修复引导
  15. 矿大计算机学院辅导员,与你一起乘风破浪!矿大2020级辅导员天团来了!
  16. 《我和我的祖国》之《夺冠》:所有人都在欢呼,只有他在哭......
  17. Mac中QQ消息记录丢失的问题解决
  18. 华为设备配置基于IP地址策略路由
  19. private static final long serialVersionUID = 1L 的作用
  20. 通俗易懂超有爱的并查集~~~

热门文章

  1. php读取剪贴板内容,js如何处理剪贴板的内容?js处理剪贴板的内容的方法
  2. JAVA设置流中当前位置_java文件流的问题!急
  3. mysql like html_mysql - MySQL RLIKE查找,然后替换打开和关闭HTML标记之间的所有字符 - 堆栈内存溢出...
  4. ldap java 对象 存储_java - 修改UID在LDAP存储库 - SO中文参考 - www.soinside.com
  5. SpringBoot整合Shiro实现登录认证授权操作
  6. 网络监视工具nethogs命令
  7. 【JS第1期】深拷贝实现原理
  8. 1月16日学习内容整理:爬虫框架:Scrapy
  9. rman命令学习-tina(上)
  10. CCFollow和ActionCallFunc