【pku狗单身一万年】
T1:
模拟就行了= =
T2:
注意到两个距离为2的点之间一定有一个中间点。那么枚举这个中间点u,和u距离为1的点的集合{v}中任意两个点距离都为2。所以对于每个点维护周围点权的和的平方a,平方和b,答案就是sigma(a-2b)。第二问同理。
用树形dp也可以做。
T3:
直接dp有70不说了。
注意到把m对于跳的高度的模分组,不同的组答案互不干扰。同组之内决策是单调的。(为什么?因为对于当前的i,j比k优,那么对于i+height[],从j和k转移过来都要再跳一次,所以j永远比k优)单调队列是不需要的因为转移区间没有下限,所以维护当前前缀最小值就行了。”
T1:
模拟就行了= =
T2:
注意到两个距离为2的点之间一定有一个中间点。那么枚举这个中间点u,和u距离为1的点的集合{v}中任意两个点距离都为2。所以对于每个点维护周围点权的和的平方a,平方和b,答案就是sigma(a-2b)。第二问同理。
用树形dp也可以做。
T3:
直接dp有70不说了。
注意到把m对于跳的高度的模分组,不同的组答案互不干扰。同组之内决策是单调的。(为什么?因为对于当前的i,j比k优,那么对于i+height[],从j和k转移过来都要再跳一次,所以j永远比k优)单调队列是不需要的因为转移区间没有下限,所以维护当前前缀最小值就行了。”