问题

给定一棵边带权树,有MM人从根节点出发,去各节点拿一把椅子回到根节点。每个人经过一条边需要一定时间,每个节点提供的椅子有数量上限CiC_i,每个节点提供两把椅子的时间至少相差PiP_i。问所有人拿一把椅子回到根节点至少需要多少时间。

题解

本题具有二分性

预处理每个节点ii到根的路径长度lenilen_i

二分答案TT,若节点ii满足2leniT2 * len_i \le T,则其能提供的椅子数量上限为

min{Ci,1+T2leniPi}\min \{ C_i, 1 + \lfloor \frac {T - 2 * len_i}{P_i} \rfloor \}

注意特判Pi=0P_i=0的情况

时间复杂度O(NlogW)O(N \log W),其中WW为答案时间数量级

吐槽

这题的定位是签到,内榜歪外榜更歪,在内榜过了一车的 & 外榜BG都过了好几个的时候这题外榜竟然是0/0!

所以说是题面太长劝退了好多人嘛

感谢TB茶歇的干饭小哥,怒抢J一血,力挽狂澜把内榜给带回来了