问题描述
很久以前,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的路费。

思想:首先这是一个找图最长路问题,我们假设最远路为(s,t),那么2次DFS即可找到(s,t),第一次DFS从任意一点k出发找k能到达的最远路,比如说为(k,T),那么根据证明(证明)
T一定为最长路的(s,t)的其中一个端点s或t,假设第一次找到的端点为s(即T = s),第二次从s出发,那么找到最远路的端点一定为t;(证明)

代码如下:

#include<iostream>
#include<vector>using namespace std;struct node{int id;int val;node(int tid,int tval){id = tid;val = tval;}
};vector<node>vc[10010]; //存图
int vis[10010] = {0}; //是否访问int duan;
int sum; //记录已经走了多远
int tmax = 0; //目前找到的最远距离
int des; //最远路的目的端点void dfs(int pre,int cur,int val){  //cur为当前所到达的节点,pre为当前节点的前一节点,//val为两节点间距离vis[cur] = 1;if(pre != -1){     //当pre = -1时,标识cur为起点,没有前节点sum += val;if(tmax < sum){tmax = sum;des = cur;        }   }for(int i = 0;i < vc[cur].size();i++){if(vis[vc[cur][i].id] != 1){dfs(cur,vc[cur][i].id,vc[cur][i].val);}}vis[cur] = 0;sum -= val;
}int main(){int n;cin>>n;for(int i = 0;i < n - 1;i++){int a,b,c;cin>>a>>b>>c;vc[a].push_back(node(b,c));vc[b].push_back(node(a,c));}dfs(-1,1,0); //这里我们选择从1出发dfs(-1,des,0); //此时的des为从1出发到达的最远点,这里我们紧接着从des出发,//这样就可以找到最长路int total = 0;for(int i = 0; i < tmax;i++){//把距离转换成费用,如果距离为3,则费用为11+12+13total += 10 + i + 1;  }cout<<total;return 0;
} 

【蓝桥杯】大臣的旅费(C++) (DSF+树的最大直径)相关推荐

  1. 蓝桥杯 大臣的旅费 JAVA

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

  2. 蓝桥杯——大臣的旅费

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

  3. java实现第四届蓝桥杯大臣的旅费

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

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

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

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

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

  6. java 大臣的旅费_蓝桥杯 大臣的旅费

    大臣J从城市4到城市5要花费135的路费. 方法1:由于两个城市之间仅仅有一种方法到达,所以能够採用floyd的方法求出随意两点间的最短距离,由于仅仅有一种方法.然后求出这些最短路径中的最大值就可以. ...

  7. python【蓝桥杯vip练习题库】BASIC-28Huffuman树(贪心 Huffuman)

    这道题输入的数组右边依旧有个空格!md,这破样例对python真坑. 试题 基础练习 Huffuman树 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 Huffman树在编码中有着 ...

  8. python【蓝桥杯vip练习题库】—Huffuman树

    Huffuman树 问题描述 Huffman树在编码中有着广泛的应用.在这里,我们只关心Huffman树的构造过程. 给出一列数{pi}={p0, p1, -, pn-1},用这列数构造Huffman ...

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

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

  10. ( 题解 )第六届蓝桥杯决赛试题 -- 完美正方形 (线段树 + 深搜)

    题目 : 完美正方形 如果一些边长互不相同的正方形,可以恰好拼出一个更大的正方形,则称其为完美正方形. 历史上,人们花了很久才找到了若干完美正方形.比如:如下边长的22个正方形 2 3 4 6 7 8 ...

最新文章

  1. sap 成本中心下的po_SAP学习基础篇(23):CO模块-成本中心费用费率计划
  2. matlab训练集测试集划分
  3. 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
  4. linux之文本比较工具
  5. android底层rsa加密,android 下RSA加密解密
  6. clojure java.jdbc_Clojure驱动的Web开发
  7. Vue学习(组件传参)-学习笔记
  8. dll侧加载_win7系统开机提示xxxdll模块已加载但找不到入口点的解决方法
  9. php_mysql注入load_file()IIS配置文件获取
  10. testmeshpro合批_TextMesh Pro Emoji Align With Text(表情和文字对齐)
  11. python简单代码需要写多久_python基本语法?初学Python要多久才能入门?
  12. LeetCode 49 Group Anagrams(字符串分组)
  13. 部署ftp文件共享服务
  14. 2021全国大学生电子设计竞赛论文(智能送药小车(F题))(电赛论文模板)
  15. linux命令行大全第2版,Linux命令行大全(第2版)
  16. Java面向对象编程练习题(28题集)
  17. CSS学习笔记 07、2D与3D转换
  18. 对当前两种热门软件创新性分析
  19. 视频教程-信息系统项目管理师-通关教程4-软考
  20. ELM饿了么获取COOKIE教程附吃货豆脚本

热门文章

  1. 应用时间序列分析(王燕)学习笔记1
  2. 虚幻引擎UE4源码编译安装(x86,arm64平台)
  3. 线性代数系列(八)--线性代数和图论
  4. CDA Level1 考试心得
  5. Axure安装、破解、汉化一条龙
  6. Vue之echarts圆饼图详解
  7. Linux 如何对http服务器进行压力测试
  8. ​新手到底如何入门PLC?
  9. 一款好用的绘制组织结构图的软件-亿图组织结构图
  10. 密码学中的各类密码汇总(一)