当前位置: 首页 > news >正文

凡科建站小程序青岛圭谷网站建设公司

凡科建站小程序,青岛圭谷网站建设公司,用文字写美食个人网站设计作品,印刷公司网站模板原题链接:1233. 全球变暖 - AcWing题库 由题意可知: 需要找到淹没的岛屿的数量淹没的岛屿所具备的条件:咩有“高地”,也就是说岛屿(连通块)中的所有元素的 4 4 4-邻域中均含有’ . ’ 思路1:…

原题链接:1233. 全球变暖 - AcWing题库

由题意可知:

  • 需要找到淹没的岛屿的数量
  • 淹没的岛屿所具备的条件:咩有“高地”,也就是说岛屿(连通块)中的所有元素的 4 4 4-邻域中均含有’ . ’

思路1:

t o t a l total total记录岛屿的全部元素数量, b o u n d bound bound记录岛屿的边界块数量,如果二者相等,则说明该岛屿会被淹没

dfs代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1010;char a[N][N];
bool vis[N][N];
int n;
int res;
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0}; //移动方向
bool flag=false; //插眼,看是否满足周围四个全是#void dfs(int x,int y,int& total,int& bound) //total为联通块个数,bound为边界块个数
{vis[x][y]=1; //记录已经遍历过total++;bool is_bound=false;for(int i=0;i<4;i++){int nx=x+dx[i];int ny=y+dy[i];//边界值的判断if(nx<0||ny<0||nx>=n||ny>n) continue;if(vis[nx][ny]) continue;if(a[nx][ny]=='.') {is_bound=true;continue;}dfs(nx,ny,total,bound);}if(is_bound) bound++;return;
}int main()
{scanf("%d",&n);for(int i=0;i<n;i++) cin>>a[i]; //cin处理字符串更为方便//遍历for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(a[i][j]=='#'&&!vis[i][j]){int total=0,bound=0;dfs(i,j,total,bound);if(total==bound) res++; //岛屿的块数全部为边界,则沉没}}}printf("%d",res);return 0;
}

思路2:

  • 直接搜索没有“高地”的连通块,用 f l a g flag flag值标记一下是否带有“高地”

bfs代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1010;int n;
char a[N][N]; 
int vis[N][N]={0};  
int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0}; //移动方向int main()
{scanf("%d",&n);for(int i = 1; i <= n; i++) cin>>a[i]; //cin处理字符串更加方便int res = 0;//进行BFSfor(int i = 1; i <= n; i++) {for(int j = 1; j <= n; j++) {if(a[i][j]=='#' && vis[i][j]==0) {queue<pair<int, int>> q;q.push({i, j});vis[i][j] = 1;bool flag = true;while(!q.empty()) {int x = q.front().first;int y = q.front().second;q.pop();if(a[x][y+1]=='#' && a[x][y-1]=='#' && a[x+1][y]=='#' && a[x-1][y]=='#')flag = false;for(int k = 0; k < 4; k++) {int nx = x + dx[k];int ny = y + dy[k];if(nx >= 1 && nx <= n && ny >= 1 && ny <= n && vis[nx][ny] == 0 && a[nx][ny] == '#') {q.push({nx, ny});vis[nx][ny] = 1;}}}if(flag)res++; // 统计被淹没的岛的数量}}}printf("%d",res);return 0;
}
http://www.yayakq.cn/news/365600/

相关文章:

  • 做淘宝客的网站所需空间网络营销策划方案结论
  • 如何安装wordpress模板网站关键词优化排名要怎么做
  • 顺德网站建设公司咨询医院网站建设招标
  • 怎么做一直弹窗口网站帮别人设计网站
  • 设计师必逛网站排名青岛企业建设网站企业
  • WordPress全站跳转竞价网站移动端
  • 简易网站为什么wordpress后台写文章不一样
  • 下载吧网站整站源码360网站怎么做
  • 怎样跟网站做优化呢网络营销的整体概念
  • 自己做网站 需要哪些网站基本维护
  • 买个网站域名多少钱网页编辑软件排行榜
  • 网站开发语言的选择稿定在线图片编辑
  • 网站开发详细设计文档模板网站建设一般多少费用
  • 百度站长平台推出网站移动化大赛服务器里面如何做网站
  • 企业做网站的注意什么问题推广神器app
  • 设计素材网站排行榜前十名广州番禺网站制作公司哪家好
  • 花店网站建设目的网站整合方案
  • 免费找素材软件seo教程资源
  • 那些网站可以做问答怎么做自己的网站主页
  • 怎么制作论坛优化网站公司哪家口碑好
  • 宜兴市住房和城乡建设局网站wordpress图片博客插件
  • 增城企业网站建设网站建设甲方原因造成停工
  • 网站建设与管理单招打开秒开小游戏
  • 网站内部优化方法行情工具
  • 做网站推广怎么样网页设计流程的四个阶段
  • 南昌做网站价格自己建网站怎么推广
  • 万网 速成网站网站建设制作模板网站怎么做
  • 网站特效网站的信息管理建设的必要性
  • 沂水网站设计锡盟做网站
  • 深圳较便宜的网站建设微信小程序