中矿新生赛 H 璐神看岛屿【BFS/DFS求联通块/连通块区域在边界则此连通块无效】...
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
输入描述:
第1行输入两个整数n,m,代表地图的长和宽。第2-n+1行,每行输入m个字符,字符为"#"表示陆地,为"."表示海洋。数据保证:0<n,m≤200
输出描述:
输出一行整数,代表岛屿的数量。
输入
3 3 ... .#. ...
输出
1
说明
只有中间的1块陆地是岛屿,所以岛屿数=1
输入
3 3 #.. .#. ...
输出
0
说明
中间的连通块有区域在边界,所以不是岛屿,岛屿数=0。 【分析】:bfs 求解连通块,注意的是在求解过程中,如果出现连通块区域在边界,则记录此连通块无效,但仍需将 bfs 操作进行完。【代码】:
![](/assets/blank.gif)
![](/assets/blank.gif)
#include <bits/stdc++.h>using namespace std; const int maxn = 250; char mp[250][250]; int vis[maxn][maxn]={0}; int dir[][2] ={{1,0},{0,1},{-1,0},{0,-1},{-1,-1},{-1,1},{1,-1},{1,1}}; int n,m,flag=0;void dfs(int x,int y) {vis[x][y]=1;if(x==0||y==0||x==n-1||y==m-1)flag=1;for(int i=0;i<8;i++){int tx=x+dir[i][0];int ty=y+dir[i][1];if(mp[tx][ty]=='#'&&tx>=0&&ty>=0){mp[tx][ty]='.';dfs(tx,ty);}} } int main() {int sum=0;cin>>n>>m;for(int i=0;i<n;i++)cin>>mp[i];for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(mp[i][j]=='#'){flag=0;dfs(i,j);if(flag==0)sum++;}}}cout<<sum<<endl;return 0; }
DFS
![](/assets/blank.gif)
![](/assets/blank.gif)
#include<bits/stdc++.h> using namespace std;const int maxn=210;char mp[maxn][maxn]; int vis[maxn][maxn]; const int dir[8][2]={{1,0},{-1,0},{0,1},{0,-1},{1,1},{1,-1},{-1,1},{-1,-1}};int n,m,ans=0;void bfs(int x,int y){if(mp[x][y]=='.'){vis[x][y]=2;return;}if(x==0||y==0||x==n-1||y==m-1){vis[x][y]=2;// return; }queue<pair<int,int> >q;q.push(make_pair(x,y));while(!q.empty()){int nowx=q.front().first;int nowy=q.front().second;if(nowx==0||nowy==0||nowx==n-1||nowy==m-1){vis[x][y]=2;//return; }q.pop();for(int i=0;i<8;++i){int x1=nowx+dir[i][0];int y1=nowy+dir[i][1];if(vis[x1][y1]==0&&mp[x1][y1]=='#'){vis[x1][y1]=1;q.push(make_pair(x1,y1));}}} }int main(){while(cin>>n>>m){memset(mp,0,sizeof(mp));memset(vis,false,sizeof(vis));ans=0;for(int i=0;i<n;++i)cin>>mp[i];for(int i=0;i<n;++i){for(int j=0;j<m;++j){if(!vis[i][j]){vis[i][j]=1;bfs(i,j);if(vis[i][j]==1){ans++;}}}}cout<<ans<<endl;}return 0; }
BFS
转载于:https://www.cnblogs.com/Roni-i/p/7909104.html
中矿新生赛 H 璐神看岛屿【BFS/DFS求联通块/连通块区域在边界则此连通块无效】...相关推荐
- 16哈理工新生赛 H 下雪啦 (哈希表)
题目链接:点击打开链接 下雪啦 Time Limit: 2500 MS Memory Limit: 32768 K Total Submit: 184(32 users) Total Accepted ...
- 湖南师范大学2018年大学生程序设计竞赛新生赛 A 齐神和心美的游戏【hash】
[链接]:A [题意]:给你n个数的序列和k.判断是否可以三个数组成k(同一个数可以拿多次) [分析]:每个数vis记录一下.2层循环.两数之和不超过k以及剩下的数出现在序列中那么ok. [代码]: ...
- 西南科技大学2021届新生赛 H.小凡出数据(构造)
LINK 首先把输入的距离对从小到大排个序 那么距离为1,21,21,2的可以直接连起来 考虑距离为333的怎么办,设u,vu,vu,v间的距离为333 可能有两种来源,一是由1+21+21+2组成, ...
- 2015GPNU新生赛题解
2015GPNU新生赛题解 今年的题目结合了往年的题目和华工,华师新生赛题目,确实是历年最难. * 1001 * Problem Description 最近ACM协会各种各样的费用都要申报,会长一时 ...
- 21级爪哇程序设计新生赛(二)题解
21级爪哇程序设计新生赛(二) 序 A 小爪的数字集合(并查集) B 小爪的得分(博弈) C 小爪的博弈(博弈) D ljc和cyj玩五子棋(模拟) E ljc和雪球(模拟) F LJC的背包(动态规 ...
- BUUCTF-MISC-[BJDCTF2020]你猜我是个啥~[ACTF新生赛2020]outguess
文章目录 1.[BJDCTF2020]你猜我是个啥 2.秘密文件 3.[SWPU2019]神奇的二维码 4.[BJDCTF2020]一叶障目 5.[BJDCTF2020]just_a_rar 6.[B ...
- QLU ACM 2018新生赛解题报告
QLU ACM 2018 新生赛解题报告 A [1303]约数个数 题目描述 输入 输出 解析 B [1301]Alice and Bob 题目描述 输入 解析 C [1289] 黑白黑 题目描述 输 ...
- HNUCM信息科学与工程学院第二届新生赛——热身赛
HNUCM信息科学与工程学院第二届新生赛--热身赛 题目比较坑点较多,注意避坑,特别是数据范围和题意,因为是新生赛,所以还是选择使用了c语言书写,基本没有调用内置函数库,排序统一使用了冒泡排序,没有使 ...
- [SUCTF2018]babyre [ACTF新生赛2020]fungame
文章目录 [SUCTF2018]babyre 惯用思维 常人思维 GAMEOVER [ACTF新生赛2020]fungame int __cdecl sub_401340(int a1) int __ ...
最新文章
- php substr 去掉前n位_用PHP是如何做图片防盗链的
- 直流电源端口雷击或瞬态浪涌防护设计方案图详解
- 微软(MS Dynamics SL)Solomon 承包商用户2006年度会议!
- URLScan工具配置方法第1/2页
- 对话框 函数_通过函数式编程实现动态对话框处理程序
- react-native 热更新react-native-pushy集成遇到的问题
- day10:函数进阶
- 哪些代码设计看似是面向对象,实际是面向过程的?
- 计划任务 crontab、at
- 圆角ImageView
- [转]测试淘宝站内的搜索系统
- vSAN其实很简单-Quickstart是一件很炫的东西
- php多条件检索怎么写,sql查询同时满足三个条件 php查询数据库,同时满足三个条件的sql怎么写?...
- python random 生成随机数
- idea mac xml注释快捷键
- 64位plsql连接oracle,PLSQL Developer连接Oracle11g 64位数据库配置详解(转)
- 网络编程练手小项目---英英词典
- 编译错误(拓补排序)
- HDD Regenerator V2.0绿色中文注册版-(令硬盘起死回生)_-Chaz-_新浪博客
- VMware虚拟机全屏状态下如何快速切换回原主机界面
热门文章
- 完整免授权彩虹源码(多模板+小储云商城模板)6.7.5
- 好玩的网页小游戏源码《星球防御战射击》
- 百度SEO站群织梦dedecms自定义多条件筛选插件源码
- 2022虎年背景全新UI头像框制作微信小程序源码
- WPF中的事件及冒泡事件和隧道事件(预览事件)的区别
- WordPress 主题教程 #6:侧边栏
- Windows下IIS+PHP 5.2的安装与配置
- CSS:理解:Before和:After伪元素
- 手机firebug查看网页代码 How to View Website Source Codes on iPad / iPhone
- 最小生成树——安慰奶牛(蓝桥杯试题集)