高开省选 Day 2

less than 1 minute read

Published:

方法论

  • 能减就差分
  • 不能减就分治
  • 二维离线就扫描线

扫描线

P4211 [LNOI2014] LCA🟡

首先差分把询问一拆二。

$dep_{\text{LCA}(i,z)}$ 看成:$i$ 到根的路径 $+1$,查询 $z$ 到根的路径和。

按右端点排序扫描线,做完了。

#637. 【美团杯2021】A. 数据结构

一个元素 $x$ 不出现,当且仅当:

  • 所有 $x$ 都在 $[l,r]$ 出现
  • 所有 $x-1$ 都不在 $[l,r]$ 出现

这两个性质画在 $l$-$r$ 坐标系上。

TODO:

交换维度

扫描序列,用 DS 维护时间维。

大部分情况是单点询问。

#515. 【UR #19】前进四

TODO:

  • 修改:区间 cmin
  • 询问:单点被成功 cmin 几次

Segment Tree Beats 可做。

分块

平衡复杂度

分块平衡的经典模型

  • $O(1)$ 单点加,$O(\sqrt n)$ 前缀和
  • $O(\sqrt n)$ 单点加,$O(1)$ 前缀和
    • TODO:
  • $O(1)$ 前缀加,$O(\sqrt n)$ 前缀和
    • TODO:

P4278 带插入区间K小值🟡

序列,插入,单点修改,查询区间 k 小值。强制在线。 操作数以及值域都在 $7 \times 10^4$ 以内。

需要一个 $O(n \sqrt n)$ 的做法。

首先 $k$ 小有一个经典的不带 $\log$ 做法。值域分块块长 $B$,不用二分答案,而是枚举 $B$ 的倍数。假设最后答案落在 $kB$ 与 $(k+1)B$ 之间,直接枚举就行了。

怎么验证?TODO:

P5611 [Ynoi2013] D2T2🟡

考虑小数据,值域固定 $[1,n]$ 怎么做。$O(n^2)$

分块

TODO:

扩展:一个块有 $n^3$ 个不同答案,分块成 $B = \sqrt[3]{n}$

莫队

回滚莫队,预处理了某些关键点

P8078 [WC2022] 秃子酋长🟡

TODO:

CF1767F Two Subtrees🟡

TODO:

根号重构

P6578 [Ynoi2019] 魔法少女网站

TODO:

杂 Trick

CF1801E Gasoline prices / P13528 [OOI 2023] Gasoline prices / 油价

P3295 [SCOI2016] 萌萌哒 完全强化版。

TODO:

CF765F Souvenirs🟡

P7880 [Ynoi2006] rldcot🟡

[ARC159F] Good Division

P7882 [Ynoi2006] rsrams🟡

P8522 [IOI 2021] 地牢游戏

P7447 [Ynoi2007] rgxsxrs

#671. 【UNR #5】诡异操作

P8283 「MCOI-08」Dantalion

P6109 [Ynoi2009] rprmq1