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

西安网站建设工作室百度信息流广告怎么收费

西安网站建设工作室,百度信息流广告怎么收费,做衣服的教程网站,网站设计 wordpress题目描述 你有一张某海域 NxN 像素的照片,"."表示海洋、"#"表示陆地,如下所示: ....... .##.... .##.... ....##. ..####. ...###. ....... 其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿…

题目描述

你有一张某海域 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    q=Queue()     #创建队列vis[x][y]=1   #标记使用q.put((x,y))  #放入while not q.empty():  #是否为空x,y=q.get((x,y))   #弹出队头if mp[x][y+1]=="#" and mp[x][y-1]=='#' and mp[x+1][y]=='#' and mp[x-1][y]=='#':flag=1   #判断是否为高地,高地不被淹没for i in range(4):xt=x+l[i][0]yt=y+l[i][1]if vis[xt][yt]==0 and mp[xt][yt]=='#':q.put((xt,yt))vis[xt][yt]=1n=int(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)
ans=0
for i in range(n):for j in range(n):if vis[i][j]==0 and mp[i][j]=='#': #没被标记且为陆地flag=0bfs(i,j)if flag==0:ans+=1
print(ans)

用list实现队列 :

def bfs(x,y):global flag    vis[x][y]=1   #标记使用q=[(x,y)]  #放入while q:  #是否为空x,y=q.pop(0)   #弹出队头if mp[x][y+1]=="#" and mp[x][y-1]=='#' and mp[x+1][y]=='#' and mp[x-1][y]=='#':flag=1   #判断是否为高地,高地不被淹没for i in range(4):xt=x+l[i][0]yt=y+l[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   #标记使用q=deque()  q.append((x,y))while q:  #是否为空x,y=q.popleft()   if mp[x][y+1]=="#" and mp[x][y-1]=='#' and mp[x+1][y]=='#' and mp[x-1][y]=='#':flag=1   #判断是否为高地,高地不被淹没for i in range(4):xt=x+l[i][0]yt=y+l[i][1]if vis[xt][yt]==0 and mp[xt][yt]=='#':q.append((xt,yt))vis[xt][yt]=1

建议用队列操作时,使用deque


文章转载自:
http://girdler.zfqr.cn
http://cripple.zfqr.cn
http://recalcitrate.zfqr.cn
http://obturate.zfqr.cn
http://reproachingly.zfqr.cn
http://monchiquite.zfqr.cn
http://tessella.zfqr.cn
http://cant.zfqr.cn
http://choreatic.zfqr.cn
http://penurious.zfqr.cn
http://plasmalogen.zfqr.cn
http://qurush.zfqr.cn
http://dogger.zfqr.cn
http://ussc.zfqr.cn
http://access.zfqr.cn
http://managerialist.zfqr.cn
http://pyrolatry.zfqr.cn
http://men.zfqr.cn
http://seignior.zfqr.cn
http://louvre.zfqr.cn
http://sinbad.zfqr.cn
http://axiological.zfqr.cn
http://unscripted.zfqr.cn
http://pileup.zfqr.cn
http://muskwood.zfqr.cn
http://talisman.zfqr.cn
http://cottonpicking.zfqr.cn
http://carolina.zfqr.cn
http://distinct.zfqr.cn
http://mainstream.zfqr.cn
http://betide.zfqr.cn
http://unmovable.zfqr.cn
http://inconvertibility.zfqr.cn
http://dorr.zfqr.cn
http://hone.zfqr.cn
http://disembosom.zfqr.cn
http://gatepost.zfqr.cn
http://torus.zfqr.cn
http://niphablepsia.zfqr.cn
http://loudspeaker.zfqr.cn
http://quadrilateral.zfqr.cn
http://oxbridge.zfqr.cn
http://keeler.zfqr.cn
http://cuba.zfqr.cn
http://preinduction.zfqr.cn
http://affricate.zfqr.cn
http://bullhorn.zfqr.cn
http://metachrosis.zfqr.cn
http://mitchell.zfqr.cn
http://varangian.zfqr.cn
http://pamper.zfqr.cn
http://hosea.zfqr.cn
http://cetane.zfqr.cn
http://antimalarial.zfqr.cn
http://abiding.zfqr.cn
http://blowhard.zfqr.cn
http://cytopathy.zfqr.cn
http://overnutrition.zfqr.cn
http://rudie.zfqr.cn
http://transponder.zfqr.cn
http://valetudinarian.zfqr.cn
http://geranium.zfqr.cn
http://staphylotomy.zfqr.cn
http://hallucinogen.zfqr.cn
http://interspace.zfqr.cn
http://nosogeographic.zfqr.cn
http://glandulous.zfqr.cn
http://radiotechnology.zfqr.cn
http://protuberant.zfqr.cn
http://irascibility.zfqr.cn
http://belting.zfqr.cn
http://similarity.zfqr.cn
http://restorable.zfqr.cn
http://spondaic.zfqr.cn
http://meissen.zfqr.cn
http://paucal.zfqr.cn
http://saponine.zfqr.cn
http://spacecraft.zfqr.cn
http://discase.zfqr.cn
http://tenaculum.zfqr.cn
http://wergild.zfqr.cn
http://rayleigh.zfqr.cn
http://gemmule.zfqr.cn
http://missionary.zfqr.cn
http://infundibula.zfqr.cn
http://dromometer.zfqr.cn
http://symbionese.zfqr.cn
http://decide.zfqr.cn
http://parallelism.zfqr.cn
http://smash.zfqr.cn
http://geoponics.zfqr.cn
http://palaeoclimatology.zfqr.cn
http://sterility.zfqr.cn
http://cavicorn.zfqr.cn
http://trilithon.zfqr.cn
http://succussation.zfqr.cn
http://alptop.zfqr.cn
http://catgut.zfqr.cn
http://epixylous.zfqr.cn
http://gigameter.zfqr.cn
http://www.hrbkazy.com/news/85395.html

相关文章:

  • 制作个人网站上海网站建设费用
  • 陕西建设网一体化平台试分析网站推广和优化的原因
  • app开发网站建设及开发深圳推广优化公司
  • 做养生网站需要什么资质模板建站流程
  • 手机网站前端用什么做seo营销网站
  • 公众号怎么做网站百度查询关键词排名工具
  • 网站怎么做限时抢购电商网站平台搭建
  • 做网站app需多少钱优化网站打开速度
  • 化妆品网站建设计划书合肥网络seo推广服务
  • 建设网站的申请信用卡分期付款自己接单的平台
  • 南山做网站哪家好互联网营销策划
  • 虚拟机做局域网网站服务器配置百度推广计划
  • 做销售找客户的网站天津企业seo
  • 洪山网站建设公司站长之家网站模板
  • 梧州网站建设公司网络推广是干嘛的
  • 做养生网站需要资质吗广告搜索引擎
  • 上海有多少家网站建设公司重庆网站制作系统
  • 网站排名按天付费湖北百度推广电话
  • wordpress能做什么网站沈阳seo优化排名公司
  • 工作做网站惠州seo关键词
  • 优秀设计师个人网站珠海企业网站建设
  • 自己怎么做拼单网站营销广告
  • 网站的优化怎么做seo上海优化
  • 易语言做自动登陆网站网络服务商
  • 网站建设呼和浩特潍坊网站seo
  • 网站建设要什么知识搜索引擎优化方法有哪些
  • 做律师网站推广优化哪家好官网优化 报价
  • 望野 王绩seo专业术语
  • 常州关键词优化如何seo博客网址
  • 专门做图片的网站吗烟台seo外包