Gravatar
┭┮﹏┭┮
积分:4078
提交:868 / 1878

首先我们考虑如何求每个点的贡献,可以发现只有最后一次经过某点的时间是有用的,我们可以考虑 最少失去的法力值,设其为 $w$ ,则答案即为 $s \times \sum m - w$,$n$ 较小,考虑状压 DP,因为询问规定了最终点,所以一维是不行的,设 $f_{i,j}$ 表示已经最后一次经过状态 $i$ 中的点,且当前在 $j$ 位置的最小答案,则有状态转移方程:

$$f_{i,j} = \min {f_{la,k} + d_{k,j} \times s_{la}}$$


其中 $d_{i,j}$ 表示 $i$ 到 $j$ 的最短路,$s_{i}$ 表示状态 $i$ 中所有节点的 $m$ 和。


然后对于答案,即为 $ans = \underline{s_{i}}_k \times \underline{s}_x + (\underline{-f_{i,j}}_b)$,显然可以 李焯书 解决。


复杂度 $\mathcal{O}(2^nn^2 + 2^nn\log{V} + q\log{V})$,当然也可以维护凸包,但是瓶颈不在这,复杂度差不多。