当前位置: 首页 > news >正文

P1131 [ZJOI2007] 时态同步

Portal.

先找出树上以 S S S 为起点最长的一条链,然后让其他链的长度都和该链对齐即可。

维护每个结点 x x x 的子树最长链 d max ⁡ ( x ) d_{\max}(x) dmax(x),则每次 DFS 求出最长链之后调整对齐的代价为 d max ⁡ ( x ) − ( d max ⁡ ( s o n x ) + w i ) d_{\max}(x)-(d_{\max}(son_x)+w_i) dmax(x)(dmax(sonx)+wi)

#include <bits/stdc++.h>
using namespace std;
#define int long longconst int maxn=5e5+5;
int head[maxn],V,cnt,mxd[maxn];
struct edge{int to,nxt,w;}e[maxn];void add(int x,int y,int z){e[++cnt]=(edge){y,head[x],z},head[x]=cnt;}void dfs(int x,int fa)
{for(int i=head[x];i;i=e[i].nxt){if(e[i].to==fa) continue;dfs(e[i].to,x),mxd[x]=max(mxd[x],mxd[e[i].to]+e[i].w);}for(int i=head[x];i;i=e[i].nxt){if(e[i].to==fa) continue;V+=mxd[x]-(mxd[e[i].to]+e[i].w);}
}signed main()
{int N,S;cin>>N>>S;for(int i=1,a,b,t;i<N;i++) cin>>a>>b>>t,add(a,b,t),add(b,a,t);dfs(S,0);cout<<V;return 0;
}
http://www.lryc.cn/news/222678.html

相关文章:

  • springboot(ssm 旅游管理系统 旅游规划平台 Java(codeLW)
  • C++ 构造函数不能是虚函数的原因
  • 【LearnOpenGL基础入门——2】搭建第一个OpenGL窗口
  • 第三章:人工智能深度学习教程-人工智能与机器学习与深度学习之间的区别
  • vue中 process.env 对象为空对象问题
  • uniapp小程序v-for提示“不支持循环数据”
  • CROS错误 403 preflight 预检
  • nginx参数调优能提升多少性能
  • 用友U8 Cloud 反序列化RCE漏洞复现
  • acwing算法基础之数据结构--STL简介
  • 【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型
  • 物联网对接协议
  • 腾讯待办关停,导出的数据怎么恢复到手机上面?
  • 视频特效编辑软件 After Effects 2022 mac中文版介绍 (ae 2022)
  • innovus:解决报告复制时一行拆成两行的问题
  • MySQL数据脱敏(Data masking plugin functions)
  • Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)
  • EasyExcel 导出冻结指定行
  • ke9案例三:页面提交文件,我服务器端接收
  • springboot调用第三方接口json转换成对象
  • uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果
  • 麒麟信安获批牵头成立国家关键领域信创行业产教融合共同体
  • 好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。
  • 手动修复 rabbitmq 报错 “Crash dump is being written to“
  • 日志门面技术
  • 机器人制作开源方案 | 管内检测维护机器人
  • k8s存储卷
  • View 自定义 - 属性 xml
  • 2007-2022年全国各地级市金融机构网点数据
  • OpenAI开发者大会掀起风暴:GPT模型价格狂降50%,应用商店即将亮相,AI技术将引爆全球!