ZJOI/Lnsyoj158/Luogu1131时态同步(树形DP水题)做题报告
Posted qin-wei-kai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZJOI/Lnsyoj158/Luogu1131时态同步(树形DP水题)做题报告相关的知识,希望对你有一定的参考价值。
rt,是一道很水的树形DP
题目描述
给出一棵有根树,每条边有一个通过时间。你可以进行一次“操作”,使得某条边的通过时间增加一秒。 你需要让根节点到每个叶节点的所需时间都相等,且“操作”次数最少。 叶节点被定义为除根节点外所有只与一个点相连的节点。
输入格式
第一行一个正整数NN,表示树上的节点个数。 第二行一个正整数SS,表示根节点的编号。 接下来N−1N−1行每行三个数a[i],b[i]a[i],b[i]和t[i]t[i],表示第ii条边连接节点a[i]a[i]和b[i]b[i],通过时间为t[i]t[i]。
输出格式
输出一行一个非负整数,表示最小“操作”次数。
样例一
input
3 1 1 2 1 1 3 3
output
2
样例解释
对第一条边进行两次“操作”即可。
限制与约定
对于30%的数据,n≤5,答案不超过10
对于60%的数据,n≤5000
对于100%的数据,n≤5∗105,t[i]≤106
时间限制:1s
空间限制:256MB
这道题思路就是用一个num[i]以i为根的子树改成了什么边权,dp[i]存储操作数即答案;
然后转移就很简单了
dp[now]+=dp[to];
num[now]=max(num[now],num[to]+edge[i].val);
dp[now]+=num[now]-(num[to]+edge[i].val);
对就酱,就这么水,但是我并没有很快就想到,
还有还有要开longlong!!
这道题其实没有省选难度,很适合练手;
以上是关于ZJOI/Lnsyoj158/Luogu1131时态同步(树形DP水题)做题报告的主要内容,如果未能解决你的问题,请参考以下文章
codeforces#541 1131a-----1131f