试题 历届试题 大臣的旅费

资源限制
时间限制:1.0s   内存限制:256.0MB

问题描述

很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。

为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。

J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。

聪明的J发现,如果不在某个城市停下来修整,在连续行进过程中,他所花的路费与他已走过的距离有关,在走第x千米到第x+1千米这一千米中(x是整数),他花费的路费是x+10这么多。也就是说走1千米花费11,走2千米要花费23。

J大臣想知道:他从某一个城市出发,中间不休息,到达另一个城市,所有可能花费的路费中最多是多少呢?

输入格式

输入的第一行包含一个整数n,表示包括首都在内的T王国的城市数

城市从1开始依次编号,1号城市为首都。

接下来n-1行,描述T国的高速路(T国的高速路一定是n-1条)

每行三个整数Pi, Qi, Di,表示城市Pi和城市Qi之间有一条高速路,长度为Di千米。

输出格式

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

样例输入1

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

样例输出1

135

输出格式

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

思路:

两遍dfs求树的直径,然后根据题目路费计算方式来计算路费即可

代码:

#include <iostream>
#include <cstring>
using namespace std;
const int N = 1e4+5;
struct Edge
{int from;int to;int val;int next;
}edge[N<<1];
int head[N],id;
void init()
{memset(head,-1,sizeof(head));id = 0;
}inline void add_edge(int from,int to,int val)
{edge[id].from = from;edge[id].to = to;edge[id].val = val;edge[id].next = head[from];head[from] = id++;
}
int maxx,pos;
void dfs(int u,int fa,int sum)
{for(int i = head[u]; ~i; i = edge[i].next){int to = edge[i].to;int val = edge[i].val;if(to != fa){dfs(to,u,sum+val);}}if(sum > maxx){pos = u;maxx = sum;}return;
}
int main()
{int n;cin>>n;init();for(int i = 1; i < n; i++){int x,y,v;cin>>x>>y>>v;add_edge(x,y,v);add_edge(y,x,v);}maxx = 0;dfs(1,0,0);maxx = 0;dfs(pos,0,0);int ans = (21 + maxx) * maxx / 2;cout<<ans<<endl;return 0;
}

历届试题 大臣的旅费(树的直径)相关推荐

  1. 历届试题 大臣的旅费(深搜 树的直径)

    问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  2. 历届试题 大臣的旅费 树形DP

    题目链接:大臣的旅费 思路:锦囊说用广搜,可惜这题没说数据范围,担心复杂度太高,我就直接用的树形DP--求树的最远路径. 以城市1为整棵树的根结点,d(i)表示以i为根结点的子树的最远路径,还有一个f ...

  3. java 大臣的旅费_PREV-9-蓝桥杯-历届试题-大臣的旅费-java

    这道题我也不会写,然后参考了这篇----> https://blog.csdn.net/Look_star/article/details/88032821 只是我觉得他的描述还不够清晰,所以把 ...

  4. 历届试题 大臣的旅费 java

    问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  5. [蓝桥杯][历届试题]小朋友排队(树状数组)

    题目描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的程度.开始的时候,所有小朋友的不高兴程度都是0. 如果某个小朋友 ...

  6. 蓝桥杯 大臣的旅费(Java dfs)

    历届试题 大臣的旅费 时间限制:1.0s 内存限制:256.0MB 问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的 ...

  7. java 大臣的旅费_蓝桥杯 大臣的旅费(Java dfs)

    历届试题 大臣的旅费 时间限制:1.0s 内存限制:256.0MB 问题描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的 ...

  8. [蓝桥杯][2013年第四届真题]大臣的旅费(树的直径)

    题目描述 很久以前,T王国空前繁荣.为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市. 为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首 ...

  9. 蓝桥杯 大臣的旅费 JAVA

    思路:该题要使用树的直径. 求树的直径:先从一个点DFS,找到一个最远的点v,然后以该点v作为起点再次DFS,找到点t,则v到t则为该树的最远直径. 1 import java.util.Arrays ...

最新文章

  1. 昨天晚上,亲眼目睹了我一哥们的崩溃,被空降90后上司鄙视,说他这种人在公司......
  2. 算法之智能搜索(下)
  3. element-ui介绍
  4. 在program A里访问program B local class的两种方式
  5. java 文件解析异常_java中异常的解析
  6. java pg数据库事务回滚_PG 事务提交与回滚
  7. Netty入门3之----Decoder和Encoder
  8. “WiFi 万能钥匙”盗 9 亿用户数据,如何看待运营平台滥用隐私的问题?
  9. Java实用教程-Java基本语法-Java程序的构成
  10. 固体火箭发动机装药拓扑优化(观点)
  11. html文件如何合并成txt文件,如何快速合并多个 TXT 文档?TXT 文本文档合并方法...
  12. 关闭445端口的方法
  13. mysql怎么生成db文件_如何使mysql生成.db文件
  14. 手机端的日期选择的插件
  15. stm32-DHT11原理及代码解读
  16. 谈谈Http长连接和Keep-Alive以及Tcp的Keepalive
  17. 发送邮件报错:452 Too many recipients
  18. C/C++笔试题(11)
  19. 翻开播客的B面:小众乌托邦的商业想象力
  20. 华为S2300系列交换机:加载web登录页面

热门文章

  1. 人力资源oracle,Oracle Connections
  2. gns3中两个路由器分别连接主机然后分析ip数据转发报文arp协议_关于TCP/IP,必知必会的十个问题!...
  3. 主程序与子程序不在同一程序模块中_分享:宏程序和子程序的应用
  4. Hadoop核心组件以及发行版
  5. 三十八、商业智能与ETL基础知识
  6. 精选30张炫酷的动态交互式图表,Pandas一键生成,通俗易懂
  7. egg风格 什么意思_小小的“egg”,有你想象不到的秘密……
  8. python数据库操作sqlite_Python操作mysql和sqlite
  9. 机器学习-数据集类型04
  10. 树形结构:二叉树,分治,合并子树,递归