一张无向图 $G$,点有点权 $a_i,b_i$,初始在 $1$,有 $val$ 的权值,需要遍历所有节点。
可以从 $u$ 移动到 $v$ 当且仅当 $(u,v) \in E, val > a_v$,不能回头。第一次移动到 $u$ 会使得 $val \gets val + b_u$。问 $val$ 至少为多少。
$1 \le n \le 10^3,1 \le m \le 2 \times 10^3$,所有点度数 $\ge 2$。
二分答案转化为判定性问题。
若没有不能回头走的限制,那么可以维护所有已经经过的点,选择 $a$ 最小的邻点扩展。
加上限制后我们仍维护已经遍历到的节点,记节点集合为 $S$,此时力量值为 $初值+\sum_{i \in S} b_i$,考虑怎样进行扩展。
存在合法路径 $x \to p_1 \to p_2 \to … \to p_k \to y$ 满足 $x,y \in S,p_i \notin S$。
存在合法路径 $x \to p_1 \to p_2 \to … \to p_1 \to x$ 满足 $x \in S,p_i \notin S$,即一段重复路径和环。
对于第一种路径,dfs 查找即可。对于第二种路径,发现其可以被拆为两条同起点的合法路径 $x \to p_1 \to … $,$x \to p’_1 \to p’_2 \to …$,且同起点的两条合法路径一定可以合成第二种路径。每次扩展一条即可,另一条会在之后被扩展。
时间复杂度 $O(nm\log V)$。
1 |
|