题面
题解
由题面,如果存在一个 $x_i$ 使得 $x_i−1$ = $x_i$ 或 $x_{i−1} < x_i < x_{i+1}$ 或 $x_{i−1} > x_i > x_{i+1}$,那么可以删去它。
需要行走的路径可以表示为一正一负的位移,有两种情况:
当 $l$ 不超过最小的位移绝对值时,答案是一个 一次函数。
当 $l$ 超过这个值时,意味着当我们到达一个位置时,后继位置直接被接触到,我们需要将 $3$ 个位移合并为 $1$ 个(当然在首尾位置时可能要特判),答案又是一个一次函数。
所以我们用 $map$/$链表$维护位移序列,$priority queue$ 维护最小位移绝对值,离线询问即可。
标程
1 |
|