[tdog]省选集训 地雷
地雷
题目大意
给定一维数轴上有\(n\)个点,第\(i\)个点坐标为\(p_i\),和它的关联半径\(r_i\),如果另一个点\(p_j\)满足\(p_j\in[p_i-r_i,p_i+r_i]\),我们称\(i,j\)是相关联的,特别地,关联具有传递性,即\(p_i\)与\(p_j\)关联,\(p_j\)与\(p_k\)关联,那么\(p_i\)与\(p_k\)关联.
值得注意的是,关联是一种单项关系.如果一个点被激活,那么所有它所关联的点都被激活,点\(i\)被激活的代价为\(cost_i\),求最小的代价总和,使所有点都被激活.
每次查询给出两个值\(x,y\),表示将激活\(x\)的代价改为\(y\)
我的解法
考虑\(50\)分做法.即时间复杂度为\(O(n^2)\)
首先\(O(n^2)\)对所有点建边,边的数量不超过\(n^2\).随后跑Tarjan缩点.缩点完成后,整个图变为一个DAG,很显然,我们只要对DAG中入度为\(0\)的点付出代价即可. 对它付出的代价为它所在强连通分量中代价最小的点的代价. 我们可以用线段树维护这件事情.
所以时间复杂度\(O(n^2+n\log n+q\log n)=O(n^2)\).

浙公网安备 33010602011771号