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

全球变暖 DFS解 python

核心思想是用 DFS/洪泛搜索对每个未访问的陆地连通块(岛屿)做一次完整遍历:用 lw 标记访问避免重复与死循环,同时在遍历过程中只要发现某个陆地点的上下左右四个方向全是陆地就说明该岛屿存在“高地”(不会全部沉没)并置 flag=1,但仍必须继续把整座岛屿搜完以保证不会把同一岛屿拆成多个;遍历结束后若 flag 仍为 0 则该岛屿没有高地、会沉没,答案加一。

import os
import sys# Python 默认递归深度较小,递归层数过多可能触发 RecursionError
# 这里将递归深度上限调大,避免 DFS 过程中递归过深导致报错
sys.setrecursionlimit(10**7)n = int(input())
dy = []   # 存放地图('#' 表示陆地)
lw = []   # 与地图对应的二维标记数组,初始全为 0,用于记录是否访问过
ans = 0
flag = 0  # 标记该岛屿是否存在“高地”:存在则为 1,不存在则为 0(不存在意味着会沉没)# 建议先阅读主循环,再回来看 dfs 的实现逻辑
def dfs(i, j):  # 深度优先搜索(递归)global flaglw[i][j] = 1  # 标记当前位置已访问;若不标记会反复访问导致递归死循环# 若当前位置上下左右均为陆地,说明岛屿中存在“高地”# 注意:即使发现高地也不能直接返回,否则未遍历到的部分会被误判为新岛屿if dy[i + 1][j] == '#' and dy[i - 1][j] == '#' and dy[i][j + 1] == '#' and dy[i][j - 1] == '#':flag = 1# 向四个方向扩展:若相邻位置为陆地且未访问,则继续递归if dy[i + 1][j] == '#' and lw[i + 1][j] == 0:dfs(i + 1, j)if dy[i][j + 1] == '#' and lw[i][j + 1] == 0:dfs(i, j + 1)if dy[i][j - 1] == '#' and lw[i][j - 1] == 0:dfs(i, j - 1)if dy[i - 1][j] == '#' and lw[i - 1][j] == 0:dfs(i - 1, j)# 读入地图,并初始化访问标记数组
for i in range(n):dy.append(list(input()))lw.append([0] * n)# 遍历整张地图:遇到未访问的陆地块,就以它为起点 DFS 搜索整座岛屿
for i in range(n):for j in range(n):if dy[i][j] == '#' and lw[i][j] == 0:flag = 0  # 每次发现新岛屿都重置标记dfs(i, j)if flag == 0:  # 若整座岛屿都不存在“高地”,则计入会沉没的岛屿数量ans += 1print(ans)
http://www.jsqmd.com/news/176574/

相关文章:

  • 抖音创作者激励:孵化一批专注AI科普的网红博主
  • 抖音创作者激励:孵化一批专注AI科普的网红博主
  • 四川省自建房设计公司哪家强?2025最新评测排行榜 + 5 星企业推荐 - 苏木2025
  • UbiComp普适计算:边缘设备上的轻量化部署尝试
  • 批量采购折扣计划:适用于大规模AI项目客户
  • 批量采购折扣计划:适用于大规模AI项目客户
  • 湖南省自建房设计公司哪家强?2026年最新权威靠谱测评榜单抢先看 - 苏木2025
  • YOLOv8网格敏感度anchor匹配机制剖析
  • 多节点训练集群搭建:基于ms-swift的企业级部署方案
  • Nature Machine Intelligence投稿:冲击顶级综合期刊
  • AWQ与GPTQ谁更强?ms-swift量化模块深度评测
  • S7 - 200 PLC程序与MCGS组态构建轴承清洗机控制系统
  • 打工人上班摸魚小說-第一章 卷王猝死,摸鱼系统到账
  • MLCC dc bias character (KYOCERA)
  • 智能合约安全审计的三维测试体系
  • Spring-boot读书笔记一主类看起来无所关联,却能运行完整项目的原因探索
  • MLCC dc bias character
  • 2025-2026广西省贺州市自建房设计公司权威测评排行榜:核心推荐机构深度解析 - 苏木2025
  • 微博话题运营:发起#我的第一个大模型#挑战活动
  • 谁是TOP1?海南省海口市自建房设计公司评测排行榜 + 真实建房案例参考 - 苏木2025
  • 【工业物联网实战】:基于C语言的边缘节点功耗监控与自适应调控方案
  • 打工人上班摸魚小說-第二章 带薪拉屎、策略划水与隐藏技能
  • 告别网盘限速!使用AI镜像站实现大模型文件直链高速下载
  • 2025 RDA年终复盘:从“上海方案”到全球共识,2026年三大战役即将打响
  • Clang内存泄漏检测实战(20年专家经验总结)
  • 揭秘Python调用C代码性能瓶颈:如何用CFFI实现零开销接口调用
  • Cell Reports Physical Science:交叉学科创新潜力展示
  • 为什么你的CUDA程序跑不快?深度剖析C语言内核编译的3大常见错误
  • 无需翻墙!国内高速镜像站一键拉取开源大模型(含ComfyUI、Three.js)
  • 广西省贵港市自建房设计公司哪家强?2026年最新权威靠谱测评榜单抢先看 - 苏木2025