标签:pre etc pac color 输入 variant false ext 整数
给出一棵有根树,每条边有一个通过时间。你可以进行一次“操作”,使得某条边的通过时间增加一秒。 你需要让根节点到每个叶节点的所需时间都相等,且“操作”次数最少。 叶节点被定义为除根节点外所有只与一个点相连的节点。
第一行一个正整数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]。
输出一行一个非负整数,表示最小“操作”次数。
3 1 1 2 1 1 3 3
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水题)【做题报告】
标签:pre etc pac color 输入 variant false ext 整数
原文地址:https://www.cnblogs.com/Qin-Wei-Kai/p/10037487.html