华为OD机试 - 最小传输时延 - 深度优先搜索DFS(Java 2023 B卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明
      • 计算源节点1到目的节点5,符合要求的时延集合

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

某通信网络中有N个网络节点,用1到N进行标识。

网络通过一个有向无环图表示,其中图的边的值表示结点之间的消息传递时延。

现给定相连节点之间的时延列表times[i] = {u,v,w},u表示源节点,v表示目的节点,w表示u和v之间的消息传递时延。

请计算给定源节点到目的节点的最小传输时延,如果目的节点不可达,返回-1。

二、输入描述

第一行输入两个正整数,表示网络节点的个数N,M,用空格分割;

下面的M行表示两个节点之间的时延列表{u,v,w}

最后一行输入两个正整数,u表示源节点,v表示目的节点;

三、输出描述

输出一个整数,表示源节点到目的节点的最小时延。

四、解题思路

  1. 定义一个时延列表{u,v,w}的集合list;
  2. 将M行输入的时延列表{u,v,w}加入list;
  3. 递归调用,计算定源节点到目的节点,符合要求的时延集合;
  4. 计算给定源节点到目的节点的最小传输时延;
  5. 如果目的节点不可达,返回-1

五、Java算法源码

// 完成源节点到目的节点的时延集合
public static List<Integer> delayList = new ArrayList<>();
// 时延列表的集合
// 下面的M行表示两个节点之间的时延列表{u,v,w}
public static List<int[]> uvwList = new ArrayList<>();/*** 3 3* 1 2 11* 2 3 13* 1 3 50* 1 3** 24*/
public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 网络节点的个数int N = sc.nextInt();// 时延列表的长度int M = sc.nextInt();// 下面的M行表示两个节点之间的时延列表{u,v,w}for (int j = 0; j < M; j++) {// u表示源节点,v表示目的节点,w表示u和v之间的消息传递时延int[] arr = new int[3];// u表示源节点arr[0] = sc.nextInt();if (arr[0] < 1 || arr[0] > N) {System.out.println("源节点输入值不合规");break;}// v表示目的节点arr[1] = sc.nextInt();if (arr[1] < 1 || arr[1] > N) {System.out.println("目的节点输入值不合规");break;}// w表示u和v之间的消息传递时延arr[2] = sc.nextInt();uvwList.add(arr);}// 源节点int begin = sc.nextInt();// 目的节点int end = sc.nextInt();// 计算源节点到目的节点,符合要求的时延集合getDelay(begin, end, 0);// 如果目的节点不可达,返回-1if (delayList.size() == 0) {System.out.println(-1);} else {// 计算给定源节点到目的节点的最小传输时延System.out.println(Collections.min(delayList));}
}/*** 计算源节点到目的节点,符合要求的时延集合** @param begin 源节点* @param end   目的节点* @param count 时延总数*/
public static void getDelay(int begin, int end, int count) {// 遍历时延列表的集合List<{u,v,w}>for (int i = 0; i < uvwList.size(); i++) {int[] temp = uvwList.get(i);// 第一个节点 = 源节点if (temp[0] == begin) {// 如果动态源节点 = 目的节点,完成源节点到目的节点的网络传输if (temp[1] == end) {// 累加消息传递时延delayList.add(count + temp[2]);continue;}// 第二个节点 = 动态源节点,完成源节点到目的节点的网络传输getDelay(temp[1], end, count + temp[2]);}}
}

六、效果展示

1、输入

5 4
1 3 10
3 4 5
4 5 12
1 5 25
1 5

2、输出

25

3、说明

计算源节点1到目的节点5,符合要求的时延集合

1到3时延10 + 3到4时延5 + 4到5时延12 = 27;

1到5时延25;

所以源节点1到目的节点5的最小时延是25。

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。

在这里插入图片描述

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

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

相关文章

牛客java训练题 day1

9.24 day1 Q 1. this 指针是用来干什么的&#xff1f; 2.基类和派生类分别是指什么&#xff1f; 3.为什么方法中不能写静态变量 4. 解释一下ASCII码和ANSI码和两者的区别 5.简述j ava.io java.sql java.awt java.rmi 分别是什么类型的包 6. 看下面一段代码&#xff1a;…

软考高级+系统架构设计师教程+第二版新版+电子版pdf

注意&#xff01;&#xff01;&#xff01; 系统架构设计师出新版教程啦&#xff0c;2022年11月出版。所以今年下半年是新版第一次考试&#xff0c;不要再复习老版教程了&#xff0c;内容改动挺大的。 【内容简介】系统架构设计师教程&#xff08;第2版&#xff09;作为全国计…

字符函数和字符串函数(C语言进阶)

字符函数和字符串函数 一.求字符串长度1.strlen 二.长度不受限制的字符串函数介绍1.strcpy2.strcat3.strcmp 前言 C语言中对字符和字符串的处理很是频繁&#xff0c;但是C语言本身是没有字符串类型的&#xff0c;字符串通常放在常量字符串中或者字符数组中。 字符串常量适用于那…

1*1的卷积核如何实现降维/升维?

在众多网络中&#xff0c;1*1的卷积核被引入用来实现输入数据通道数的改变。 举例说明&#xff0c;如果输入数据格式为X*Y*6&#xff0c;X*Y为数据矩阵&#xff0c;6为通道数&#xff0c;如果希望输出数据格式为X*Y*5&#xff0c;使用5个1*1*6的卷积核即可。 其转换过程类似于…

如何在32位MCU用printf()函数打印64位数据

1. 在32位MCU上定义64位变量&#xff1a; unsigned long long time_base; unsigned long long temp_time;2. 调用打印函数&#xff1a; printf("RFID:time_base:%d\r\n",time_base); printf("RFID:temp_time:%d\r\n",temp_time); printf("RFID:Ru…

2023.9.19 关于 数据链路层 和 DNS 协议 基本知识

目录 数据链路层 MTU DNS 协议 补充 DHCP协议 数据链路层 基本概念&#xff1a; 考虑相邻两个节点之间的传输&#xff08;通过 网线 / 光纤 / 无线 直接相连的两个设备&#xff09;以太网协议 规定了 数据链路层 和 物理层 的内容 IP地址 与 mac地址 的相互配合 IP地址 描…

kotlin的集合使用maxBy函数报NoSuchElementException

kotlin设定函数 fun test() {listOf<Int>().maxBy { it } } 查看java实现

opencv实现仿射变换和透射变换

##1&#xff0c; 什么是仿射变换&#xff1f; 代码实现 import numpy as np import cv2 as cv import matplotlib.pyplot as plt#设置字体 from pylab import mpl mpl.rcParams[font.sans-serif] [SimHei]#图像的读取 img cv.imread("lena.png")#仿射变换 row…

电脑C盘爆红怎么办?(小白篇)

文章目录 前言&#xff1a;1、清理临时和系统文件2、更改电脑默认软件安装位置3、微信、QQ文件存储路径放在其它盘4、卸载一些不常用的软件彩蛋 前言&#xff1a; C盘作为电脑的系统盘&#xff0c;如果出现爆满或者剩余空间很小整个C盘变红&#xff0c;这样会导致电脑系统运行…

【微信小程序开发】宠物预约医疗项目实战-注册实现

【微信小程序开发】宠物预约医疗项目实战-注册实现 第二章 宠物预约医疗项目实战-注册实现 文章目录 【微信小程序开发】宠物预约医疗项目实战-注册实现前言一、打开项目文件二、编写wxss代码2.1 什么是wxss2.2 配置主程序全局样式 三. 在sign文件下的wxml文件中编写如下代码并…

Codeforces Round #898 (Div. 4)

首先庆祝自己上了绿名&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384;&#x1f384; 1873A - Short Sort 1873B - Good Kid c…

python模拟斐波那契数列输出

用户输入指定的数列范围&#xff0c;正确输出结果。 源代码&#xff1a; def fiebo(n): a 1 b 1 for i in range(n): if i 0: print(a, end" ") elif i 1: print(b, end" ") else: …

腾讯云16核CPU服务器配置大全,CVM和轻量服务器

腾讯云16核CPU服务器有哪些配置可以选择&#xff1f;可以选择标准型S6、标准型SA3、计算型C6或标准型S5等&#xff0c;目前标准型S5云服务器有优惠活动&#xff0c;性价比高&#xff0c;计算型C6云服务器16核性能更高&#xff0c;轻量16核32G28M带宽优惠价3468元15个月&#xf…

Java基础(四)

前言&#xff1a;本博客主要涉及java编程中的线程、多线程、生成者消费者模型、死锁。 目录 线程多线程 线程同步 synchronized Lock锁 线程通信 生产者消费者模型 线程池 使用线程池处理Runnable任务 使用线程池处理Callable任务 Excutors 悲观锁 乐观锁 并发VS并…

React 全栈体系(十三)

第七章 redux 五、redux 异步编程 1. 理解 redux 默认是不能进行异步处理的,某些时候应用中需要在 redux 中执行异步任务(ajax, 定时器) 2. 使用异步中间件 npm install --save redux-thunk 3. 代码 - 异步 action 版 3.1 store /* src/redux/store.js */ /*** 该文件专…

【Spatial-Temporal Action Localization(七)】论文阅读2022年

文章目录 1. TubeR: Tubelet Transformer for Video Action Detection摘要和结论引言&#xff1a;针对痛点和贡献模型框架TubeR Encoder&#xff1a;TubeR Decoder&#xff1a;Task-Specific Heads&#xff1a; 2. Holistic Interaction Transformer Network for Action Detect…

前端项目练习(练习-001-纯原生)

先创建一个空文件夹&#xff0c;名字为web-001,然后用idea开发工具打开&#xff0c;如图&#xff1a; 可以看到&#xff0c;这是个彻底的空项目&#xff0c;创建 index.html index.js index.css三个文件&#xff0c;如图&#xff1a; 其中&#xff0c;html文件内容如下&am…

Qt Charts简介

文章目录 一.图标类型Charts分类1.折线图和样条曲线图2.面积图和散点图3.条形图4.饼图5.误差棒图6.烛台图7.极坐标图 二.坐标轴Axes类型分类三.图例四.图表的互动五.图表样式主题 一.图标类型Charts分类 图表是通过使用系列类的实例并将其添加到QChart或ChartView实例来创建的…

RT-Thread(学习)

RT-Thread是一款完全由国内团队开发维护的嵌入式实时操作系统&#xff08;RTOS&#xff09;&#xff0c;具有完全的自主知识产权。经过16个年头的沉淀&#xff0c;伴随着物联网的兴起&#xff0c;它正演变成一个功能强大、组件丰富的物联网操作系统。 RT-Thread概述 RT-Threa…

基于 SpringBoot+Vue的电影影城管理系统,附源码,数据库

文章目录 第一章 简介第二章 技术栈第三章 功能分析第四章 系统设计第5章 系统详细设计六 源码咨询 第一章 简介 本影城管理系统&#xff0c;是基于 Java SpringBoot 开发的。主要包括二大功能模块&#xff0c;即用户功能模块和管理员功能模块。 &#xff08;1&#xff09;管…