原题目

  当然这是原题+,要输路径的。所以必须DFS。

  Describe:DP or DFS

  code:

#include<bits/stdc++.h>
using namespace std;
long long n,x,y,z,nxt[50005],tot,fa[50005],W[50005],son[50005],fir[50005],dis[50005],q[50005],ans,maxn;
bool vis[50005],vis2[50005];
inline long long read(){
long long ret=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9') {if (ch=='-') f=-f;ch=getchar();}
while (ch>='0'&&ch<='9') ret=ret*10+ch-'0',ch=getchar();
return ret*f;
}
inline void write(long long x){
if(x<0){putchar('-'),write(-x);return;}
if(x/10)write(x/10);putchar(x%10+'0');
}
inline void add(int a,int b,int w){
son[++tot]=b;
nxt[tot]=fir[a];
fa[tot]=a;
fir[a]=tot;
W[tot]=w; son[++tot]=a;
nxt[tot]=fir[b];
fa[tot]=b;
fir[b]=tot;
W[tot]=w;
}
inline void spfa(int s){
memset(vis,0,sizeof(vis));
memset(dis,0,sizeof(dis));
memset(vis2,0,sizeof(vis2)); long long h=0,t=1;q[1]=s;
while(h!=t){
h=h%n+1;long long K=q[h];vis[K]=0;
for(int i=fir[K];i;i=nxt[i]){
int to=son[i];
if(dis[K]+W[i]>dis[to]&&!vis2[i]){
dis[to]=dis[K]+W[i],vis2[i]=1;
if(son[i-1]==K&&fa[i-1]==to)
vis2[i-1]=1;else vis2[i+1]=1;
if(!vis[to])t=t%n+1,q[t]=to,vis[to]=1;
}
}
}
}
int main(){
freopen("tree.in","r",stdin);
freopen("tree.out","w",stdout);
n=read();for(int i=1;i<=n-1;i++)x=read(),y=read(),z=read(),add(x,y,z); //建图
spfa(1);for(int i=2;i<=n;i++)if(dis[i]>dis[maxn])maxn=i; //根据题意,SPFA找最远点
spfa(maxn);for(int i=1;i<=n;i++)ans=max(ans,dis[i]);write(ans); //SPFA找距离
}
/*
4
1 2 10
1 3 12
1 4 15
*/

  

Day2-T4的更多相关文章

  1. python接口自动化-session_自动发文

    一.session简介 查看 requests.session() 帮助文档(只贴了一部分内容) import requests help(requests.session()) class Sess ...

  2. GDOI2016酱油记(补发)

    这篇酱油记是前年发在MCHacker一个叫code-hub的博客上的(已崩),现在来补发一下... GDOI2016扯淡(爆零记) 大家好,我是巨弱DCDCBigBig,在五一期间和一群神牛去考GDO ...

  3. Day2:T4求逆序对(树状数组+归并排序)

    T4: 求逆序对 A[I]为前缀和 推导 (A[J]-A[I])/(J-I)>=M A[j]-A[I]>=M(J-I) A[J]-M*J>=A[I]-M*I 设B[]=A[]-M*( ...

  4. Spark菜鸟学习营Day2 分布式系统需求分析

    Spark菜鸟学习营Day2 分布式系统需求分析 本分析主要针对从原有代码向Spark的迁移.要注意的是Spark和传统开发有着截然不同的思考思路,所以我们需要首先对原有代码进行需求分析,形成改造思路 ...

  5. 考前停课集训 Day2 非

    因为太长了 所以一天一天分开发 Day2 昨天晚上没开黑车 没脱衣服就睡了 可能是我难受了…… 新的一天. 早上好. 我没去晨跑,早上先和团长集合了,没看见rkbudlo来 于是就先吃饭了 去机房的时 ...

  6. 福州三中基训day2

    今天讲的BFS,不得不说,福建三中订的旅馆是真的劲,早餐极棒!!! 早上和yty大神边交流边听zld犇犇讲BFS,嘛,今天讲的比较基础,而且BFS也很好懂(三天弄过一道青铜莲花池的我好像没资格说),除 ...

  7. [GDKOI2021] 普及组 Day2 总结

    [ G D K O I 2021 ] 普 及 组 D a y 2 总 结 [GDKOI2021] 普及组 Day2 总结 [GDKOI2021]普及组Day2总结 时间安排和昨天的GDKOI2021 ...

  8. 【总结】2022GDOI普及组试题与题解(缺两天的T4)

    标签 2022 广东省选普及组 GDOI 试题 前往Luogu下载 Luogu下载:This Day1题解 T1 邹忌讽齐王纳谏 打卡题,建议模拟 建议使用map,时间复杂度为\(O(nlogn)\) ...

  9. 【从零开始学BPM,Day2】默认表单开发

    [课程主题]主题:5天,一起从零开始学习BPM[课程形式]1.为期5天的短任务学习2.每天观看一个视频,视频学习时间自由安排. [第二天课程] Step 1 软件下载:H3 BPM10.0全开放免费下 ...

  10. 使用T4模板生成不同部署环境下的配置文件

    在开发企业级应用的时候,通常会有不同的开发环境,比如有开发环境,测试环境,正式环境,生产环境等.在一份代码部署到不同环境的时候,不同环境的配置文件可能需要根据目标环境不同而不同.比如在开发环境中,数据 ...

随机推荐

  1. Day1-XDoj-1062

    题目描述 一天,lw梦见自己在打dota,然而对面是一个加强过的卡尔!于是,他每次都被n个技能瞬间秒杀.愤怒的lw决定买BKB,来加强生存力. 由于加强过的卡尔是电脑操作的,他每次看见lw时,只会以1 ...

  2. Myeclipse 安装时候android adt, android sdk常见问题

    离线版adt安装  可以随意百度adt下载 安装时候注意断网模式,否则会连接到服务器耗费很长时间:如果安装报错,可能是adt与Myeclipse版本不匹配,如我用的是Myeclipse8.6,安装AD ...

  3. 蓝牙 BLE 协议学习: 3种蓝牙架构实现方案(蓝牙协议栈方案)

    导言 不同的蓝牙架构可以用在不同的场景中.从而协议帧的架构方案也会不同. 转载自:<三种蓝牙架构实现方案(蓝牙协议栈方案)> 蓝牙架构实现方案有哪几种?我们一般把整个蓝牙实现方案叫做蓝牙协 ...

  4. SpringCloud实战——(1)创建SpringCloud项目

    首先创建一个SpirngCloud工程,并添加公用依赖. <?xml version="1.0" encoding="UTF-8"?> <pr ...

  5. iOS 安全地在主线程执行一个Block

    //主线程同步队列 #define dispatch_main_sync_safe(block)\ if ([NSThread isMainThread]) {\ block();\ } else { ...

  6. sizeof strlen 求char*字符串的长度

    sizeof只是求变量所占的字节数,sizeof(char *) = 4字节: strlen(char*) 可以得到整个字符串的长度. 如果是数组vec,那么使用sizeof就可以得到整个数组的所占的 ...

  7. 013、MySQL取本月最后日期,取每个月的最后一天日期

    #取本月最后一天 SELECT last_day( curdate( ) ); #取上个月最后一天 , INTERVAL MONTH ) ); , INTERVAL MONTH ) ); , INTE ...

  8. mysql concat与concat_ws区别

    select concat('大','小') as size from 表 查询出结果为:大小 select concat('大',NULL) as size from 表 查询出结果为:null c ...

  9. TFIDF介绍

    简介 全称: Term Frequency-inverse document frequency(文本频率与逆文档频率指数) 目的: 表征一个token(可以是一个字或者一个词)的重要程度 是Elas ...

  10. NO6 alias-unalias命令,递归创建目录,如何取消覆盖提示

    ·如果需要更新补丁则执行:·yum update·yum install lrzsz telnet tree nmap nc -y·alias #查看系统现有的别名.        一.设置别名eg: ...