OD C卷 - 寻找最优的路测线路

寻找最优的路测线路(200)

  • 给定一个m行、n列的数组(路线网络),每个值代表当前位置的信号质量,越大信号越好;
  • 从 [0, 0] 到 [m-1, n-1]位置的路线中,最小值代表当前路线的评分,如8->4->5->9的评分为4;
  • 每个位置可以走向上下左右四个方向,不能对角;
  • 找出一个网络中的最优路线的评分;
    输入描述:
    第一行输入行数m;
    第二行输入列数n;
    第三行开始,每行为信号值s;
    1< m,n <20
    1 < s < 65535
    输出描述:
    最优路线的评分

示例1
输入:
3
3
5 4 5
1 2 6
7 4 6
输出:
4

示例2
输入:
6
5
3 4 6 3 4
0 2 1 1 7
8 8 3 2 7
3 2 4 9 8
4 1 2 0 0
4 6 5 4 3
输出:
3

思路:

  • 二分法,取值 mid =(low+high)// 2
  • mid从大到小,以当前值走DFS遍历,能找都一条线路,则停止,并输出mid
def dfs(x, y, mid):global row, col, matrix, visited# 最后一个位置if x == row - 1 and y == col - 1:return Trueelif matrix[x][y] < mid:return Falseelse:visited[x][y] = 1 # 标记已访问dirtection = [-1, 0, 1, 0, -1]# 四个方向for i in range(4):new_x = x + dirtection[i]new_y = y + dirtection[i + 1]if new_x >= 0 and new_x < row and new_y >= 0 and \new_y < col and visited[new_x][new_y] == 0 and matrix[new_x][new_y] >= mid:# 继续深度优先if dfs(new_x, new_y, mid):return Truereturn Falserow = int(input().strip())
col = int(input().strip())
matrix = []
visited = []
for i in range(row):matrix.append(list(map(int, input().strip().split())))visited.append([0 for _ in range(col)])# 二分法 + BFS
left = 0
right = 65535
while left < right:mid = (left + right) // 2   # 从大值到小值 逐渐变化# 初始化 visitedfor i in range(row):for j in range(col):visited[i][j] = 0if dfs(0, 0, mid):left = midelse: # 不满足需要减小right = mid - 1print(left)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/52578.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高斯混合模型原理及Python实践

高斯混合模型&#xff08;Gaussian Mixture Model&#xff0c;简称GMM&#xff09;是一种统计学中的概率模型&#xff0c;用于表示由多个高斯分布&#xff08;正态分布&#xff09;混合组成的数据集合。其核心原理基于假设数据集中的每个数据点都是由多个潜在的高斯分布之一生成…

springboot项目使用本地依赖项,打包后出现NoClassDefFoundError的一种解决方法

可以把本地依赖项上传到本地仓库后再引用 建立 Maven 本地仓库并将依赖上传到本地仓库 要建立 Maven 本地仓库并将依赖上传到本地仓库&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 配置 Maven 本地仓库路径 Maven 默认会在用户的主目录下的 .m2/repository 目录创…

基于Modbus的MFC智能控制

1. 系统概述 利用LabVIEW通过Modbus 485协议实现对七星&#xff08;Sevenstar&#xff09;品牌质量流量控制器&#xff08;MFC&#xff09;的智能化控制。该系统将自动控制多个MFC的流速&#xff0c;实时监控其状态&#xff0c;并根据需要进行调整。 2. 硬件配置 MFCs: 七星品…

JavaScript学习文档(7):Web API、获取DOM对象、操作元素内容、元素属性、定时器-间歇函数

目录 一、Web API 1、作用和分类 2、DOM是什么 3、DOM树 4、DOM对象 &#xff08;1&#xff09;DOM对象如何创建的? &#xff08;2&#xff09;DOM对象怎么创建的? 二、获取DOM对象 1、根据CSS选择器来获取DOM元素 &#xff08;1&#xff09;选择匹配的第一个元素 …

Spring(2)

目录 一、使用注解开发 1.1 主要注解 1.2 衍生注解 1.3 xml与注解 二、使用Java的方式配置Spring 三、代理模式 3.1 静态代理 3.1.1 角色分析 3.1.2 代码步骤 3.1.3 优点 3.1.4 缺点 3.2 动态代理 3.2.1 代码步骤 四、AOP 4.1 使用Spring的API接口 4.2 使用自定义…

8月15日

上午开会 rag继续 异构大模型 狂野飙车9之前的账号终于找回来了 下午 关于minicpm的代码 minicpm-v 大模型预训练论文&方法总结 - 知乎 (zhihu.com) 这里有讲解的代码 发现还是先推荐把llava的掌握好了之后再看minicpm 多模态大模型LLaVA模型讲解——transformers源…

YoloV8改进策略:卷积篇|ACConv2d模块在YoloV9中的创新应用与显著性能提升|简单易用_即插即用

摘要 在本文中&#xff0c;我们创新性地将ACConv2d模块引入到YoloV9目标检测模型中&#xff0c;通过对YoloV9中原有的Conv卷积层进行替换&#xff0c;实现了模型性能的大幅提升。ACConv2d模块基于不对称卷积块&#xff08;ACB&#xff09;的设计思想&#xff0c;利用1D非对称卷…

sql server导入mysql,使用工具SQLyog

概述 需要将sql server的数据导入到mysql中&#xff0c;由于2种数据库存在各种差异&#xff0c;比如表字段类型就有很多不同&#xff0c;因此需要工具来实现。 这里使用SQLyog来实现。 SQLyog安装 安装过程参考文档&#xff1a;https://blog.csdn.net/Sunshine_liang1/article/…

SQL Server事务日志文件过大的处理方法

正常情况下事务日志文件过大时可以右点数据库--任务--收缩--文件--选择日志进行收缩&#xff0c;从而达到减小事务日志文件的目的。 但在有些情况下没有达到执行收缩条件&#xff0c;无法执行收缩&#xff1a; 1、数据库恢复模式 为 完整恢复模式&#xff08;FULL&#xff09…

c++,python实现网络爬虫

前言&#xff1a; 社交网络中用户生成的海量数据&#xff0c;社交网络数据的多样性和复杂性 如何高效地从海量的数据中获取和处理我们需要的信息资源&#xff1f; 该微博爬虫能够从社交网络平台中地提取文本、图片和用户之间的转发关系&#xff0c;并将这些数据结构化存储到…

【图论】Tarjan算法(强连通分量)

一、Tarjan算法简介 Tarjan算法是一种由美国计算机科学家罗伯特塔杨&#xff08;Robert Tarjan&#xff09;提出的求解有向图强连通分量的线性时间的算法。 二、强连通分量的概念 在有向图 G G G 中&#xff0c;如果任意两个不同的顶点相互可达&#xff0c;则称该有向图是强…

Android高级UI --- canvas

前言 我们先来聊聊&#xff0c;在我们生活中如何绘制一张如下的图。 我们需要两样东西来绘制&#xff1a; 一张纸&#xff08;Android 中的 canvas&#xff09;&#xff1a;用来承载我们绘制的内容。一支笔&#xff08;Android 中的 paint&#xff09;&#xff1a;负责绘制内…

(QT-UI)十四、在时间轴上绘制一段段时间片

本系列预计实现 ①刻度上方文字显示&#xff0c; ②时间轴拖动效果&#xff0c; ③时间轴刻度缩放&#xff0c; ④时间轴和其他控件联动显示&#xff0c; ⑤鼠标放置到时间轴&#xff0c;显示具体时间。 ⑥通过定时器&#xff0c;实时更新时间轴 ⑦时间轴上绘制时间片 完…

如何上传NPM包:一步步指南

在JavaScript和Node.js开发中&#xff0c;NPM&#xff08;Node Package Manager&#xff09;是一个广泛使用的包管理工具。通过NPM&#xff0c;我们可以方便地管理项目中的依赖库&#xff0c;也可以将自己的代码打包发布给其他开发者使用。这篇文章将详细介绍如何将你自己的代码…

电商API 接口的发展会对传统行业产生哪些影响

API 接口的发展会给传统行业带来多方面的影响&#xff0c;具体如下&#xff1a; 提升运营效率与生产力 优化业务流程&#xff1a;以制造业为例&#xff0c;通过 API 接口可将生产设备、管理系统等进行连接&#xff0c;实现设备数据的自动采集与传输&#xff0c;实时监控生产状态…

004、架构_配置文件_总览

配置文件用来配置各模块运行时使用的参数,GoldenDB数据库的配置文件以及文件说明参见 下表: 模块/服务器名称配置文件文件路径配置文件功能CNproxy.ini os.ini dis_info_load.ini$HOME/etc/proxy.ini 配置 CN 运行参数。 os.ini 配置链路信息 ,以及模块启动信 息。 dis_info…

linux系统使用 docker 来部署web环境 nginx+php7.4 并配置称 docker-compose-mysql.yml 文件

Docker是一个开源的容器化平台&#xff0c;旨在简化应用程序的创建、部署和管理。它基于OS-level虚拟化技术&#xff0c;通过将应用程序和其依赖项打包到一个称为容器的标准化单元中&#xff0c;使得应用程序可以在任何环境中快速、可靠地运行。 Docker的优势有以下几个方面&a…

重发布实验

一、实验拓扑 二、实验需求 1.如图搭建网络拓扑&#xff0c;所有路由器各自创建一个环回接 口&#xff0c;合理规划IP地址 2.R1-R2-R3-R4-R6之间使用OSPF协议&#xff0c;R4-R5-R6之间使用 RIP协议 3.R1环回重发布方式引入OSPF网络 4.R4/R6上进行双点双向重发布 5.分析网络中出…

VScode | 我想推荐这些插件,好用

系列文章目录 本系列文章主要分享作位前端开发的工具之------VScode的使用分享。 VScode | 我的常用插件分享_vscode 别名跳转-CSDN博客 VScode | 我的常用代码片段&#xff0c;提升开发速度-CSDN博客 VScode | 我会设置文件夹右键用VScode打开_vscode右键打开文件夹-CSDN博…

如何使用ssm实现基于ssm的“游侠”旅游信息管理系统

TOC ssm190基于ssm的“游侠”旅游信息管理系统jsp 绪论 1.1 研究背景 当前社会各行业领域竞争压力非常大&#xff0c;随着当前时代的信息化&#xff0c;科学化发展&#xff0c;让社会各行业领域都争相使用新的信息技术&#xff0c;对行业内的各种相关数据进行科学化&#x…