加载中...

[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)\).

正解还不会,有空更新

posted @ 2022-03-23 13:08  ZQYang  阅读(49)  评论(0)    收藏  举报