U636462 无根树
noip 前一天锻炼手感。
设 \(f_i\) 为 \(i\) 到终点的答案。
那么每次转移 \(u\) 这个点的时候,令其出点 \(v\) 的贡献为 \(w + f_v\),那么敌人一定会选择最小的 \(d\) 个点办掉,此时你的答案一定为第 \(d + 1\) 小的点,维护一下即可。
具体来说建立反向图然后正常跑 dijkstra 即可。
noip 前一天锻炼手感。
设 \(f_i\) 为 \(i\) 到终点的答案。
那么每次转移 \(u\) 这个点的时候,令其出点 \(v\) 的贡献为 \(w + f_v\),那么敌人一定会选择最小的 \(d\) 个点办掉,此时你的答案一定为第 \(d + 1\) 小的点,维护一下即可。
具体来说建立反向图然后正常跑 dijkstra 即可。