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

郑州交通建设投资有限公司网站建设网站时间推进表

郑州交通建设投资有限公司网站,建设网站时间推进表,网站的总规划书,wordpress编辑器支持代码题目描述 你有一张某海域 NxN 像素的照片#xff0c;.表示海洋、#表示陆地#xff0c;如下所示#xff1a; ....... .##.... .##.... ....##. ..####. ...###. ....... 其中上下左右四个方向上连在一起的一片陆地组成一座岛屿…题目描述 你有一张某海域 NxN 像素的照片.表示海洋、#表示陆地如下所示 ....... .##.... .##.... ....##. ..####. ...###. ....... 其中上下左右四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有 2 座岛屿。 由于全球变暖导致了海面上升科学家预测未来几十年岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋)它就会被淹没。 例如上图中的海域未来会变成如下样子 ....... ....... ....... ....... ....#.. ....... ....... 请你计算依照科学家的预测照片中有多少岛屿会被完全淹没。 输入描述 第一行包含一个整数 N (1≤N≤1000)。 以下 N 行 N 列代表一张海域照片。 照片保证第 1 行、第 1 列、第 N 行、第 N 列的像素都是海洋。、 输出一个整数表示答案。 输入输出样例 示例 输入 7 ....... .##.... .##.... ....##. ..####. ...###. .......输出 1 思路 连通性判断 图论的一个简单问题给定一张图图由点和连接点的边组成要求找到图中互相连通的部分。 BFS判断连通性的步骤         ·从图上任意一个点u开始遍历把它放进队列中。         ·弹出队首u标记u已搜过然后搜索u的邻居点即与u连通的点放到队列中。         ·继续弹出队首标记搜过然后搜索与它连通的邻居点放进队列。 继续以上步骤直到队列为空此时一个连通块已经找到。 其他没有访问到的点属于另外的连通块按以上步骤再次处理这些点。 最后所有点都搜到所有连通块也都找到。 连通性判断 什么岛屿不会被完全淹没         若岛中有个陆地称为高地它周围都是陆地那么这个岛不会被完全淹没。         用BFS搜出有多少个岛连通块检查这个岛有没有高地统计那些没有高地的岛连通块的数量就是答案。         计算复杂度每个像素点只用搜一次且必须至少搜一次共N2个点BFS的复杂度是O(N2)不可能更好了。 参考代码 from queue import * #导入模块 def bfs(x,y):global flag qQueue() #创建队列vis[x][y]1 #标记使用q.put((x,y)) #放入while not q.empty(): #是否为空x,yq.get((x,y)) #弹出队头if mp[x][y1]# and mp[x][y-1]# and mp[x1][y]# and mp[x-1][y]#:flag1 #判断是否为高地高地不被淹没for i in range(4):xtxl[i][0]ytyl[i][1]if vis[xt][yt]0 and mp[xt][yt]#:q.put((xt,yt))vis[xt][yt]1nint(input()) mp[] l[(1,0),(-1,0),(0,-1),(0,1)] for i in range(n):mp.append(list(input())) vis[] for i in range(n):vis.append([0]*n) ans0 for i in range(n):for j in range(n):if vis[i][j]0 and mp[i][j]#: #没被标记且为陆地flag0bfs(i,j)if flag0:ans1 print(ans) 用list实现队列 def bfs(x,y):global flag vis[x][y]1 #标记使用q[(x,y)] #放入while q: #是否为空x,yq.pop(0) #弹出队头if mp[x][y1]# and mp[x][y-1]# and mp[x1][y]# and mp[x-1][y]#:flag1 #判断是否为高地高地不被淹没for i in range(4):xtxl[i][0]ytyl[i][1]if vis[xt][yt]0 and mp[xt][yt]#:q.append((xt,yt))vis[xt][yt]1用deque实现队列 from collections import * #导入模块 def bfs(x,y):global flag vis[x][y]1 #标记使用qdeque() q.append((x,y))while q: #是否为空x,yq.popleft() if mp[x][y1]# and mp[x][y-1]# and mp[x1][y]# and mp[x-1][y]#:flag1 #判断是否为高地高地不被淹没for i in range(4):xtxl[i][0]ytyl[i][1]if vis[xt][yt]0 and mp[xt][yt]#:q.append((xt,yt))vis[xt][yt]1 建议用队列操作时使用deque
http://www.dnsts.com.cn/news/81038.html

相关文章:

  • 推广赚钱app芭嘞seo
  • 天津建设银行东丽网站青海seo技术培训
  • 灵宝市建设局网站wordpress前台登录插件
  • 建设工程质量监督竣工备案网站建筑行业平台
  • gzip网站优化wordpress 视频无广告
  • 学生做网站作品图片千锋python培训
  • 找钟点工做的网站黄冈如何创建免费网站
  • 农业推广网站建设网站开发与规划就业前景
  • 做网站能月入10万去掉wordpress.org
  • 不干胶印刷网站建设做网站更赚钱吗
  • 重庆网站推广专家国外品牌vi设计
  • 电子商务网站建设课后答案app 官方网站 案例
  • 网站建设的地方网站建设验收期
  • h5手机网站建设哪家好新闻发稿发布平台
  • wordpress教程百度云汕头自动seo
  • 情人节网站怎么做关键词搜索热度查询
  • 百度seo 站长工具广州设计网站建设
  • 网站建设与管理课件域名拦截检测网站
  • 南阳东莞网站建设公司哪家好兼职网站开发需求
  • 设计素材网站能挣钱吗七牛云加速WordPress
  • seo网站营销推广全程实例pdf厦门哪家公司做网站
  • 技术支持 优府网络太原网站建设新吴区网站建设
  • 人事处网站建设绩效目标概述wordpress 4.7.0 漏洞
  • 盐城最专业网站建设网站排名优化网站怎么企业备案信息
  • 顺义网站制作国外用wordpress
  • 网站源码下载免费源码互联网怎么做
  • 深圳定制网站制作费用室内装修设计图片欣赏
  • 个性化网站定制网站建设公司的成本有哪些内容
  • 怎么制作免费建网站flex网站模板
  • 开购物网站需要多少钱外国域名注册网站