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

2024-08-27 01:04
文章标签 寻找 od 线路 最优 路测

本文主要是介绍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)

这篇关于OD C卷 - 寻找最优的路测线路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1110195

相关文章

寻找身高相近的小朋友

题目描述: 小明今年升学到小学一年级,来到新班级后发现其他小朋友们身高参差不齐,然后就想基于各小朋友和自己的身高差对他们进行排序,请帮他实现排序。 输入描述: 第一行为正整数H和N,0<H<200,为小明的身高,0<N<50,为新班级其他小朋友个数。第二行为N个正整数H1-HN,分别是其他小朋友的身高,取值范围0<Hi<200(1<=i<=N),且N个正整数各不相同。 输出描述: 输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

华为OD机试真题-学生方阵-2024年OD统一考试(E卷)

题目描述 学校组织活动,将学生排成一个矩形方阵。 请在矩形方阵中找到最大的位置相连的男生数量。这个相连位置在一个直线上,方向可以是水平的,垂直的,成对角线的或者呈反对角线的。 注:学生个数不会超过10000 输入描述 输入的第一行为矩阵的行数和列数, 接下来的 n行为矩阵元素,元素间用""分隔。 输出描述 输出一个整数,表示矩阵中最长的位

【第0006页 · 数组】寻找重复数

【前言】本文以及之后的一些题解都会陆续整理到目录中,若想了解全部题解整理,请看这里: 第0006页 · 寻找重复数         今天想讨论的一道题在 LeetCode 上评论也是颇为“不错”。有一说一,是道好题,不过我们还是得先理解了它才算真正的好题。这里我们展示一种使用二进制的做法,希望能帮到你哟! 【寻找重复数】给定一个包含 n + 1 个整数的数组 nums ,其数字都

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)

一、Camera 简化思路 在 Camera 的开发中,其实我们通常只关注打开相机、图像预览和关闭相机,其他的步骤我们不应该花费太多的精力 为此,应该提供一个工具类,它有处理相机的一些基本工具方法,包括获取摄像头 ID、选择最优预览尺寸以及打印相机参数信息 二、Camera 工具类 CameraIdResult.java public class CameraIdResult {

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

第二天旅游线路规划和预览

第二天:从克拉玛依市乌尔禾区到五彩滩,晚上住宿贾登峪; 规划结果见下图: 1、行程安排 根据上面的耗时情况,规划一天的行程安排如下: 1)早上7:30起床,吃完早饭,8:30出发; 2)从克拉玛依市乌尔禾区到五彩滩风景区,路程229公里,车程3小时,中午12:00左右到达五彩滩景区; 3)中午吃饭1小时; 3)五彩滩游玩时间约3小时,在五彩滩游玩到16:00; 4)乘车前往阿勒泰地区布尔津县

华为OD机试 - 最大利润(Java 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。 一、题目描述

【最新华为OD机试E卷-支持在线评测】分糖果(100分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.