P8819 星战 galaxy 题解
赛时因为 T4 这题一眼没看,事后发现真的神仙。
简化题面后条件为:
- 所有点出度为
1 。 - 从所有点走出去都能走到环上。
不难发现条件仅为判断所有点出度为
再看操作:
- 删掉一条边
(u,v) - 对于
u ,将所有边(t,u) 删掉。 - 加入之前被删掉的边
(u,v) - 对于一个之前被执行
2 操作的u ,将那次操作删除的所有边(t,u) 加入。
由于我们判断答案的时候,只关心每个点的出度是否为
那么如果
由于权值的随机性,跑十次随机然后答案取个与就能过民间数据了。
对于维护
- 对于操作一,会使
d_u 减一,令sum 和vl_v 减去w_u 即可。 - 对于操作二,会使
u 的入度为0 ,和令u 入边到达的所有点出度减一,等同于让sum 减去vl_u ,再把vl_u 变为0 。 - 对于操作三,会使
d_u 加一,给sum 和vl_v 加上w_u 即可。 - 对于操作四,会使
d_u 的入度回到初始状态,那么sum 的变化量为su_u-vl_u ,那么给sum 加上变化量并使vl_u=su_u 即可。
复杂度
所以为什么我考场不看 T3 啊。