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

OD 算法题 B卷 【需要打开多少监视器】

文章目录

  • 需要打开多少监视器

需要打开多少监视器

  • 某长方形停车场,每个车位上方都有对应监控器,在当前车位和前后左右四个方向任意一个车位范围停车时,监控器才需要打开。
  • 给出某一时刻停车场的停车分布,统计最少需要打开多少个监控器;
    输入描述:
    第一行输入m,n表示长宽;
    后面输入m行,每行有n个0/1,1表示有停车;
    输出描述:
    最少需要打开的监控器的数量

示例1:
输入:
3 3
0 0 0
0 1 0
0 0 0
输出:
5
示例2:
输入:
5 6
1 0 0 0 1 1
0 0 1 1 0 1
0 0 1 1 1 1
1 0 0 0 1 0
0 0 0 0 0 0
输出:
26

python实现:
思路:

  1. 遍历m行n列,判断每个位置的监控是否需要打开;
  2. 当前位置+四个方向,任意一个位置有1则需要打开该位置的监控;
# 输入行 列
m, n = [int(x) for x in input().split()]# 输入停车分布
arr = []
for i in range(m):arr.append([int(x) for x in input().split()])# 遍历每个位置
result = 0
for i in range(m):for j in range(n):if arr[i][j] != 1:# 如果当前不为1,则判断四个方向的情况left = (j-1 >= 0) and arr[i][j-1] == 1right = (j+1 < n) and matrix[i][j+1] == 1top = (i-1 >= 0) and matrix[i-1][j] == 1bottom = (i+1 < m) and matrix[i+1][j] == 1if any([left, right, top, bottom]):result += 1else:# 当前位置为1,则直接打开监控result += 1print(result)

 

http://www.xdnf.cn/news/7640.html

相关文章:

  • Unity 喷烟喷气特效:喷快消失慢
  • YOLO模型初次训练体验(+实测)
  • Java并发进阶系列:jdk1.8的HashMap红黑树设计原理及其源代码深入解析(不含balanceDetection方法)
  • day24- 系统编程 概述 及 标准IO
  • hgdbv9创建plpython3u插件后无法使用该插件创建函数
  • 通过自签名ssl证书进行js注入的技术,适合注入electron开发的app
  • 解决Linux服务器MXNet安装与`npx`模块问题
  • GIS融合之路(九)-Cesium上的洪水模拟实现
  • 知识体系_数据分析挖掘_基尼系数
  • 教师可用的申报书——基于GAI的小学数学课堂跨学科支架设计与实践
  • 马尔可夫链(AI、ML):逻辑与数学的交汇
  • 产品经理面经(二)
  • Nginx配置记录访问信息
  • uthash是一个非常轻量级的库
  • 基于单片机的车辆防盗系统设计与实现
  • Xshell传输文件
  • Babylon.js学习之路《六、材质与纹理:为模型赋予真实的表面效果》
  • 道路运输安全员需要具备哪些职业道德?
  • 复用保护倒换和通道保护倒换有什么区别?
  • 链表原理与实现:从单链表到LinkedList
  • Java转Go日记(四十):Gorm更新
  • 获取文件夹下所有文件的名称
  • PyTest
  • 【Fifty Project - D29】
  • HarmonyOS应用开发入门宝典——项目驱动学习法实践
  • 第十节第一部分:常见的API:Math、System、Runtime
  • 一、Singal Tap 观察reg信号和wire信号
  • AI智能客户运营系统架构:从数据采集到精准触达的全链路技术方案
  • RK BT656隔行输入在运动的时候有锯齿(横纹)
  • JAVA基础——数组与二维数组