1. #include <bits/stdc++.h>
  2. #define M 1005
  3. using namespace std;
  4.  
  5. int n;
  6. char map1[M][M];
  7. bool vis[M][M];
  8. int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};
  9.  
  10. void dfs(int x,int y)
  11. {
  12. vis[x][y] = 1;
  13. for(int i = 0; i < 4; i++)
  14. {
  15. int dx = x + dir[i][0];
  16. int dy = y + dir[i][1];
  17. if(dx >= 0 && dy >=0 && dx < n && dy < n && !vis[dx][dy] && map1[dx][dy] == '#')
  18. dfs(dx,dy);
  19. }
  20. }
  21.  
  22. int main()
  23. {
  24. cin>>n;
  25. int begin_count = 0,end_count = 0;
  26. for(int i = 0; i < n; i++)
  27. for(int j = 0; j < n; j++)
  28. cin>>map1[i][j];
  29.  
  30. /*统计开始前岛屿个数*/
  31. for(int i = 0; i < n; i++)
  32. for(int j = 0; j < n; j++)
  33. {
  34. if(map1[i][j] == '#' && !vis[i][j])
  35. begin_count++,dfs(i,j);
  36. }
  37.  
  38. /*淹没过程*/
  39. memset(vis,0,sizeof(vis));
  40. for(int i = 1; i < n-1; i++)
  41. for(int j = 1; j < n-1; j++)
  42. {
  43. if(map1[i][j] == '#'){
  44. if((map1[i+1][j]=='.'||map1[i-1][j]=='.'||map1[i][j+1]=='.'||map1[i][j-1]=='.'))
  45. map1[i][j] = '1';
  46. }
  47. }
  48.  
  49. /*统计结束后岛屿个数*/
  50. memset(vis,0,sizeof(vis));
  51. for(int i = 0; i < n; i++)
  52. for(int j = 0; j < n; j++)
  53. {
  54. if(map1[i][j] == '#' && !vis[i][j])
  55. end_count++,dfs(i,j);
  56. }
  57.  
  58. cout<<begin_count - end_count<<"\n";
  59. return 0;
  60. }

比较简单的搜索题目,

蓝桥杯2018 B组 第九题的更多相关文章

  1. 第八届蓝桥杯java b组第九题

    标题: 分巧克力 儿童节那天有K位小朋友到小明家做客.小明拿出了珍藏的巧克力招待小朋友们.    小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形. 为了公平起见,小明需要从这 N ...

  2. 2018年蓝桥杯ava b组第一题

    第一题.标题:第几天 2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容 如果问我怎么做的,我就是看日历做的,看了 ...

  3. 第九届蓝桥杯(A组填空题)

    1.标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + …. 每项是前一项的一半,如果一共有20项, 求这个和是多少,结果用分数表示出来. 类似: 3/2 当然,这只是加了前2项 ...

  4. 2018年蓝桥杯java b组第二题

    2.标题:方格计数 如图p1.png所示,在二维平面上有无数个1x1的小方格. 我们以某个小方格的一个顶点为圆心画一个半径为1000的圆.你能计算出这个圆里有多少个完整的小方格吗? 注意:需要提交的是 ...

  5. 第八届蓝桥杯java b组第一题

    1,标题: 购物单    小明刚刚找到工作,老板人很好,只是老板夫人很爱购物.老板忙的时候经常让小明帮忙到商场代为购物.小明很厌烦,但又不好推辞.    这不,XX大促销又来了!老板夫人开出了长长的购 ...

  6. 第六届蓝桥杯java b组第一题

    第一题 三角形面积 图中的所有小方格面积都是1. 那么,图中的三角形面积应该是多少呢? 请填写三角形的面积.不要填写任何多余内容或说明性文字. 填空答案 28 没什么好说的 第一题很水 估计就是为了增 ...

  7. 第八届蓝桥杯java b组第二题

    标题:纸牌三角形 A,2,3,4,5,6,7,8,9 共9张纸牌排成一个正三角形(A按1计算).要求每个边的和相等.        下图就是一种排法(如有对齐问题,参看p1.png). A       ...

  8. 第六届蓝桥杯java b组第二题

    立方变自身 观察下面的现象,某个数字的立方,按位累加仍然等于自身. 1^3 = 1 8^3 = 512 5+1+2=8 17^3 = 4913 4+9+1+3=17 … 请你计算包括1,8,17在内, ...

  9. (acwing蓝桥杯c++AB组)1.1 递归

    (acwing蓝桥杯c++AB组)1.课程介绍+递归 文章目录 (acwing蓝桥杯c++AB组)1.课程介绍+递归 课程介绍 第一讲 递归与递推 递归 引入 递归的底层调用顺序 例题与练习 课程介绍 ...

随机推荐

  1. 大话Json对象和Json字符串

    一.Json对象和Json字符串的区别 (1)Json对象:可以通过javascript存取属性. 先介绍一下json对象,首先说到对象的概念,对象的属性是可以用:对象.属性进行调用的.例如: var ...

  2. php -- func_get_args

    该方法必须在某个方法内部执行才有效 返回值为索引数组,一个数组元素对应一个参数

  3. windows 安装python pip Could not install packages due to anEnvironmentError: [WinError 5] 拒绝访问

    找打 C:\Windows\System32 文件夹下面的cmd.exe点开后运行python -m pip install --upgrade pip 即解决问题了.

  4. eclipse输入中文为繁体字

    今天上班在java类中写注释,发现是繁体字,于是切换到文本编辑器,简体字,于是百度发现, 原来是搜狗输入放和eclipse的快捷键ctrl+shift+F冲突,因为使用了eclipse的格式化,结果切 ...

  5. Java中的堆内存设置对线程创建数的影响以及-Xss参数的记录

    Java的线程对象是存储在堆上的,所以,能够创建多少个线程,受到堆空间的大小限制,同时也受到每个线程的大小的限制,假如线程对象内部有一个非常大的数组字段,那就非常影响能够创建的线程的大小 我们的例子: ...

  6. G - Throw nails

    来源hde4393 The annual school bicycle contest started. ZL is a student in this school. He is so boring ...

  7. nvm的安装

    安装前可先卸载原来的node, npm, 安装成功后,可用nvm装node 一.用nvm-noinstall.zip安装 1.nvm-windows 下载 https://github.com/cor ...

  8. route 配置默认网关

    影响Linux系统网络中网关配置信息的3种方式 1.生效文件cat /etc/sysconfig/network-scripts/ifcfg-eth0 GATEWAY=10.0.0.254 <- ...

  9. 搭建svn服务器的坑

    第一次搭建,能启动,就是连接不了 原因:修改配置文件(所有文字前面不能有空格,等号必须空格)

  10. leetcode-Given a binary tree, find its minimum depth

    第一题 Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the s ...