题解:「NAPC #1」rStage3 ~ Hard Jump Refreshers
:::info[题意]{open}
给你
:::
首先不难发现正城弱化版(
来到逆城,考虑优化。tarjan 求 scc 这一块应该是动不了了,于是考虑优化建图。最最常见的就是线段树优化建图,直接套就可以把 P5025 秒了,但该题的坐标系是二维的啊,所以不能直接套。
对着上面那个有边条件使劲瞪,发现第
y_i + d \geqslant |x_i-x_j| + y_j\Rightarrow\\ \begin{cases}y_i+d\geqslant x_i-x_j+y_j\Rightarrow(y_i-x_i)+d\geqslant (y_j-x_j)\\ y_i+d\geqslant -x_i+x_j+y_j\Rightarrow (y_i+x_i)+d\geqslant(y_j+x_j)\end{cases}\\ \text{i.e. }x'_i+d\geqslant x'_j,\ y'_i+d\geqslant y'_j.
发现这个东西长得有点像二维偏序/二维数点!(但是,BIT 优化建图,有点抽象吧,于是考虑把之前的线段树请回来。)考虑对
建完图就可以美美套 tarjan 缩点模板通过啦。具体实现细节可参考 AC Code,时间遥遥领先。时空复杂度均为
(当时在餐桌上想了 1h,其实想到的是另一个使用链表+线段树来优化建图的玩意,可是回家发现这东西和主席树好像没啥区别,于是此题加强版也成了板子,就没有真正放到 R2 去 qwq)
最后来几道练习题:
- P5025 [SNOI2017] 炸弹(rs3 的一维版本)。
- AT_nikkei2019_final_f Flights(【模板】主席树优化建图)。
- AT_arc069_d [ARC069F] Flags(【】+【】+主席树优化建图,虽然和本题好像没什么关系)。
Thanks for watching!