蓝桥杯官网练习题(大臣的旅费)

问题描述

很久以前,T 王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。
为节省经费,T 国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。
J 是 T 国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了 J 最常做的事情。他有一个钱袋,用于存放往来城市间的路费。
聪明的 J 发现,如果不在某个城市停下来修整,在连续行进过程中,他所花的路费与他已走过的距离有关,在走第 x  千米到第 x + 1 千米这一千米中(x 是整数),他花费的路费是 x + 10 这么多。也就是说走 1 千米花费 11,走 2 千米要花费 23。
J 大臣想知道:他从某一个城市出发,中间不休息,到达另一个城市,所有可能花费的路费中最多是多少呢?

输入格式

输入的第一行包含一个整数 n ( n < = 10000 ) ,表示包括首都在内的 T 王国的城市数
城市从 1 开始依次编号,1 号城市为首都。
接下来 n − 1 n-1n−1 行,描述 T 国的高速路(T国的高速路一定是 n − 1 n-1n−1 条)
每行三个整数 P i , Q i , D i  ,表示城市 P i 和城市 Q i 之间有一条高速路,长度为 D i 千米。

输出格式

输出一个整数,表示大臣 J 最多花费的路费是多少。

样例输入

5
1 2 2
1 3 1
2 4 5
2 5 4

样例输出

135

样例分析

大臣 J 从城市 4 到城市 5 要花费 135 的路费。

//利用两次dfs求树的直径

树的直径算法主要有两个,下面给出利用两次DFS(或BFS)求树的直径算法的做法:

从任意节点出发,通过 DFS(或 BFS)对树进行一次遍历,求出与出发点距离最远的节点记为 p ;

从节点 p 出发,通过 DFS(或 BFS)再进行一次遍历,求出与 p距离最远的节点,记为 q 。

则从 p 到 q 的路径就是树的一条直径

import java.util.*;public class Main {static ArrayList<Node>[] list;static int max=Integer.MIN_VALUE;static int maxindex=-1;public static void main(String[] args) {Scanner scan = new Scanner(System.in);int n=scan.nextInt();list=new ArrayList[n+1];for(int i=1;i<=n;i++){list[i]=new ArrayList<Node>();}for(int i=0;i<n-1;i++){int P=scan.nextInt();int Q=scan.nextInt();int D=scan.nextInt();list[P].add(new Node(Q,D));list[Q].add(new Node(P,D));}dfs(1,1,0);dfs(maxindex,maxindex,0);System.out.println(max*11+(max*(max-1))/2);//公差为11的等差数列求第n项的值scan.close();}public static void dfs(int start,int end,int sum){int flag=1;ArrayList<Node> t=list[end];for(int i=0;i<t.size();i++){Node p=t.get(i);if(p.num==start){continue;}flag=0;dfs(end,p.num,sum+p.value);}if(flag==1&&sum>max){max=sum;maxindex=end;}}static class Node{int num,value;public Node(int num,int value){this.num=num;this.value=value;}}
}

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

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

相关文章

Redis——缓存设计与优化

讲解Redis的缓存设计与优化&#xff0c;以及在生产环境中遇到的Redis常见问题&#xff0c;例如缓存雪崩和缓存穿透&#xff0c;还讲解了相关问题的解决方案。 1、Redis缓存的优点和缺点 1.1、缓存优点&#xff1a; 高速读写&#xff1a;Redis可以帮助解决由于数据库压力造成…

安全的接口访问策略

渗透测试 一、Token与签名 一般客户端和服务端的设计过程中&#xff0c;大部分分为有状态和无状态接口。 一般用户登录状态下&#xff0c;判断用户是否有权限或者能否请求接口&#xff0c;都是根据用户登录成功后&#xff0c;服务端授予的token进行控制的。 但并不是说有了tok…

【LeetCode】332. 重新安排行程(困难)——代码随想录算法训练营Day30

题目链接&#xff1a;332. 重新安排行程 题目描述 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&a…

椭圆曲线加密

椭圆曲线加密&#xff08;Elliptic Curve Cryptography&#xff0c;ECC&#xff09;是一种公钥加密算法&#xff0c;它基于椭圆曲线上的数学运算来实现安全的通信。 以下是椭圆曲线加密的基本过程&#xff1a; 1. 参数选择&#xff1a;选择一个适当的椭圆曲线和一个基础点。椭…

C#(C Sharp)学习笔记_运算符与布尔类型【四】

算术运算符 所谓算术运算符&#xff1a;就是现实中的加减乘除之类的符号&#xff0c;但在编程语言中&#xff0c;它们又有不同于现实的语法。下面就介绍一下算术运算符的各种符号包括计算案例。 运算符描述实例(设a为4&#xff1b;b为2)把两个操作数相加A B 将得到 6-从第一…

JVM-运行时数据区程序计数器

运行时数据区 Java虚拟机在运行Java程序过程中管理的内存区域&#xff0c;称之为运行时数据区。《Java虚拟机规范》中规定了每一部分的作用。 程序计数器的定义 程序计数器&#xff08;Program Counter Register&#xff09;也叫PC寄存器&#xff0c;每个线程会通过程序计数器…

1.3 Verilog 环境搭建详解教程

学习 Verilog 做仿真时&#xff0c;可选择不同仿真环境。FPGA 开发环境有 Xilinx 公司的 ISE&#xff08;目前已停止更新&#xff09;&#xff0c;VIVADO&#xff1b;因特尔公司的 Quartus II&#xff1b;ASIC 开发环境有 Synopsys 公司的 VCS &#xff1b;很多人也在用 Icarus…

PyTorch 2.2 中文官方教程(三)

使用 PyTorch 构建模型 原文&#xff1a;pytorch.org/tutorials/beginner/introyt/modelsyt_tutorial.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 注意 点击这里下载完整示例代码 介绍 || 张量 || 自动微分 || 构建模型 || TensorBoard 支持 || 训练模型 ||…

一些学习的总结帖子

一、Spring 参考链接1 参考链接2 参考链接3 二、多线程 并发的理解 参考链接1 三、redis 参考链接1 四、rabbitmq 五、数据库 数据库事务的概念及其原理 数据库事务 六、other 添加链接描述

Why React Doesn‘t Need jQuery?

a revolution library – 一个革命性的库greatly simplified tasks such as … – 极大的简化了…任务DOM manipulation – DOM操作event handling – 事件处理animation creation – 动画创建Ajax request – Ajax请求with the rise of modern front frameworks – 随着现代前…

Java风暴:打造高效作家信息管理平台

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

Web项目利用EasyExcel实现Excel的导出操作

早期Java使用的一些解析&#xff0c;到处excel的框架存在种种问题被遗弃&#xff0c;现在使用阿里巴巴所提供的EasyExcel已成为一种主流&#xff0c;本篇将详细介绍该功能在Web项目中如何实际应用。 详细操作文档&#xff1a;写Excel | Easy Excel 一、项目演示 在后台管理界…

windows下使用bat打开程序,并解决闪退问题

1.如何使用bat打开一个已经编译好的exe文件 示例&#xff1a;start /d"F:\testProject\bin\Debug" Shell_Component.exestart 空格 /d(后面不要空格) 引号并包裹exe程序路径 空格 exe名称 参考&#xff1a;https://blog.csdn.net/zhangshengqiang168/article/d…

Nginx与history路由模式:刷新页面404问题

使用nginx部署前端项目&#xff0c;路由模式采用history模式时&#xff0c;刷新页面之后&#xff0c;显示404。 路由模式 前端路由的基本作用为&#xff1a; ①当浏览器地址变化时&#xff0c;切换页面&#xff1b; ②点击浏览器后退、前进按钮时&#xff0c;更新网页内容&…

基于ISO13400 (DoIP) 实现车辆刷写

近年来&#xff0c;在整车研发中基于以太网实现车辆高带宽通讯无疑是人们热议的话题。无论是车内基于车载以太网来减少线束成本&#xff0c;实现ADAS、信息娱乐系统等技术&#xff0c;还是基于新的电子电气架构以及远程诊断需求来实现以太网诊断&#xff08;DoIP&#xff09;&a…

BUGKU-WEB 留言板

题目描述 题目无需登录后台&#xff01;需要xss平台接收flag&#xff0c; http协议需要http协议的xss平台打开场景后界面如下&#xff1a; 解题思路 看到此类的题目&#xff0c;应该和存储型xss有关&#xff0c;也就是将恶意代码保存到服务器端即然在服务器端&#xff0c;那就…

【Cocos入门】场景切换(loadScene、preloadScene)

一、loadScene 加载场景 loadScene(sceneName: string, onLaunched: Director.OnSceneLaunched, onUnloaded: Director.OnUnload) : boolean 通过场景名称进行加载场景。返回值为布尔类型 参数&#xff1a; NameTypeDescriptionsceneNamestring场景名称onLaunchedDirector.O…

c++信号

信号&#xff08;Signals&#xff09; 参考链接&#xff1a;具体例子 信号是 UNIX 和类 UNIX 操作系统&#xff08;如 Linux&#xff09;中进程间通信的一种机制。一个信号就是一个异步的通知&#xff0c;发送给进程以告知它发生了某个事件。当一个信号发送给进程时&#xff…

基于Chrome插件的Chatgpt对话无损导出markdown格式(Typora完美显示)

刚刚提交插件到Chrome插件商店正在审核&#xff0c;想尝试的可以先使用&#xff1a; https://github.com/thisisbaiy/ChatGPT-To-Markdown-google-plugin/tree/main 我将源代码上传至了GitHub&#xff0c;欢迎star, IssueGoogle插件名称为&#xff1a;ChatGPT to MarkDown plus…

3.1 Verilog 连续赋值

关键词&#xff1a;assign&#xff0c; 全加器 连续赋值语句是 Verilog 数据流建模的基本语句&#xff0c;用于对 wire 型变量进行赋值。&#xff1a; 格式如下 assign LHS_target RHS_expression &#xff1b; LHS&#xff08;left hand side&#xff09; 指赋值操作…