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

【华为OD机考】华为OD笔试真题解析(7)--基站维修工程师

题目描述

小王是一名基站维护工程师,负责某区域的基站维护。某地方有n个基站(1 < n < 10),已知各基站之间的距离s0 < s < 500),并且基站x到基站y的距离,与基站y到基站x的距离并不一定会相同。

小王从基站1出发,途径每个基站1次,然后返回基站1,需要请你为他选择一条距离最短的路径。

输入描述

第一行表示站点数,以后各行表示站点数n到各站点之间的距离(均为整数)。

3
0 2 1
1 0 2
2 1 0

输出描述

最短路径的数值。

示例描述

示例一

输入:

3
0 2 1
1 0 2
2 1 0

输出:

3

解题思路

  1. 本题采用可放回的回溯法。
  2. 由于固定从基站1开始,可设置初始路径列表为[0],路径长度和路径节点一致,使用回溯法得到所有可能的路径。
  3. 根据得到的路径,计算路径长度,得到最小路径。

解题代码

import math


def solve_method(num, paths):
    result = []
    backstracking(num, num, 1, [0], result)

    min_path = math.inf
    for path in result:
        total_path = 0
        prev = 0
        for p in path:
            # 计算路径长度
            total_path += paths[prev][p]
            prev = p

        if total_path < min_path:
            min_path = total_path
    return min_path


def backstracking(n, k, start_index, path, result):
    if len(path) == k:
        tmp = path[:]
        tmp.append(0)
        result.append(tmp)
        return

    # 采用放回的取数方式
    for i in set(range(n)).difference(set(path)):
        path.append(i)
        backstracking(n, k, i + 1, path, result)
        path.pop()


if __name__ == '__main__':
    num = 3
    paths_length = [
        [0, 2, 1],
        [1, 0, 2],
        [2, 1, 0],
    ]
    assert solve_method(num, paths_length) == 3

在这里插入图片描述

相关文章:

  • 【Qt】实现定期清理程序日志
  • 排序算法详解、应用对比与C语言实现
  • 【AI学习】DeepSeek-R1-Distill的意义和影响
  • 【TI C2000】F28002x的系统延时、GPIO配置及SCI(UART)串口发送、接收
  • Git命令摘录
  • C++ -- stack的模拟实现 介绍适配器模式
  • Zookeeper(45) 如何在Zookeeper中删除节点?
  • CentOS上安装WordPress
  • 在SpringBoot如何调用DeepSeek接口
  • 【Qt】模型/视图(Model/View)框架详解(一):基本概念
  • 【Axure教程】数字滚动效果
  • 深入解析LVS命令参数及DR模式下的ARP抑制原理
  • rustdesk远程桌面自建服务器
  • stl里的deque 中控map 假如用完了,该如何处理
  • C# 调用 C++ 动态库接口
  • 深入指南:在IDEA中启用和使用DeepSeek
  • 花卉图片分类实战 -- 基于预训练的 Vision Transformer 实现
  • Vue3组件通信全攻略:8种传值方式详解
  • JavaScript document.write()介绍(直接将内容写入HTML文档的早期方法,已逐渐被现代DOM操作方法取代)
  • export关键字
  • 下辖各区密集“联手”,南京在下一盘什么样的棋?
  • 机器人为啥热衷“搞体育”,经济日报:是向加速融入日常生活发起的冲锋
  • 嫩黑线货物列车脱轨致1名路外人员死亡,3人被采取刑事强制措施
  • 中国物流集团等10家央企11名领导人员职务任免
  • 哈马斯官员:若实现永久停火,可交出加沙地带控制权
  • 车建兴被留置:跌落的前常州首富和红星系重整迷路