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

【蓝桥杯】12111暖气冰场(多源BFS 或者 二分)

在这里插入图片描述

思路

这题可以用BFS做,也可以用二分来做。
用二分这里只提供一个思路:对时间来二分查找,check函数就是检查在特定的时间 t 0 t_0 t0内每一个暖气炉的传播距离能否覆盖所有格子。
用BFS做:
由几个点开始向外扩散,知道铺满整个面。可以用BFS来做,原本的BFS是从一个点开始加入deque,多源BFS那现在就先把所有的暖气炉加入deque,再遍历就行了。
还有一个注意点,题目的输出是花了多少时间,也就是扩散的轮数,我们可以用距离来度量时间,一秒钟一格,所以我们时刻更新所出现的距离暖气炉最远的距离即可。我们把vis标记数组替换为dis数组 兼具判断是否遍历和记录距离的作用。

code

import os
import sys
from collections import deque

n,m,t = map(int,input().split())
q = deque()
dis = [[-1 for i in range(m+1)] for j in range(n+1)]
for i in range(t):
  x,y = map(int,input().split())
  q.append([x,y])
  dis[x][y] = 0

ans = 0
while len(q)!=0:
  x,y = q.popleft()
  for dx,dy in [(-1,0),(+1,0),(0,-1),(0,+1),(-1,-1),(-1,+1),(+1,-1),(+1,+1)]:
    nx,ny = x+dx,y+dy
    if 1<=nx<=n and 1<=ny<=m:
      if dis[nx][ny]==-1:
        q.append([nx,ny])
        dis[nx][ny] = dis[x][y] + 1
        ans = max(ans,dis[nx][ny])

print(ans)
原文地址:https://blog.csdn.net/2301_77168269/article/details/146448138
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/597269.html

相关文章:

  • 智能家居安全革命:代理IP如何守护物联网世界
  • 哈尔滨工业大学DeepSeek公开课人工智能:从图灵测试到DeepSeek|附视频和PPT下载方法
  • 数据驱动进化:AI Agent如何重构手机交互范式?
  • 多模态SVG生成新标杆:StarVector从图像文本生成高精度SVG的AI模型
  • css基础-display 常用布局
  • Vue 和 React 使用ref
  • 元音辅音及其字母组合发音
  • 在使用 RabbitMQ 时,手动确认消息和死信队列
  • python中的demjson包介绍
  • Linux系统之美:环境变量的概念以及基本操作
  • taosdump备份所有的数据库近10天的数据(deepseek)
  • SQL宏-代替UDF
  • 【2025】基于python+flask的在线考试系统(源码、万字文档、图文修改、调试答疑)
  • CI/CD(三) 安装nfs并指定k8s默认storageClass
  • vue项目使用k8s动态配置环境变量(运行时)
  • 初识TensorFlow:从入门到简单应用
  • 如何区别在Spring Boot 2 和 Spring Boot 3 中使用 Knife4j:集成与配置指南
  • Dart语言的安全开发
  • 为容器指定固定IP地址
  • 2024 浅浅总结