Y
K
N
U
F

怎么都在写总结啊

好了,那我也来总结一下。

分块

整块打 \(tag\),散块暴力重构而达到复杂度平衡:数列分块入门 2由乃打扑克等,这个常见。

把查询 or 修改拆成 \(n\sqrt n\) 次,利用分块的优良性质做题:你的名字等,这也常见。

对时间分块来处理撤销 or 复读等操作,一般适用于查询复杂度较小的题目:方方方的数据结构等,据说不常见。

预处理每块的某信息 or 前缀信息 or 块间信息,然后查询,也可以叫在线莫队历史的研究蒲公英等,比较常见。

将某操作拆分成分 \(\frac nB\) 步操作来平衡修改和查询的复杂度:kamen弹飞绵羊等,不太多但是应该考到了就不至于不会。

阈值分治

一部分预处理另一部分直接做,非常常见:限りなく灰色へ私は雨等。

对于相关于除法 or 乘法 or 取模等操作,可以考虑直接做一部分,另一部分对每一个值扫描线一遍,类似于上一个:你的名字「知りたくなかった、失うのなら」

用来卡空间之类的,发现大 or 小的部分暴力不是不行就可以这样,线段树底层分块也是这个思路。交友问题rgxsxrs

一些常见的和阈值有关的东西,懒得一个开一整张了,都放这里了。

  1. 一个数 \(a\) 的大于 \(\sqrt a\) 的质因子只有 \(1\) 个,同理大于 \(\sqrt [3]n\) 的最多 \(2\) 个。

  2. 如果数据范围有 \(\sum n\) 状物。

    1. 不同的 \(n\) 最大有 $ \sqrt {\sum n}$ 个。
    2. 大于 $ \sqrt {\sum n}$ 的 \(n\) 最大有 \(\sqrt {\sum n}\) 个。
  3. 如果数据范围有 \(n \times m\) 状物,想到这两个必然有一个小于根号。

  4. 考虑子集问题可以把 \(2^n\) 拆成两个 \(2^{\frac n2}\),一半子集一半超集。

  5. 别只想根号,想想 \(\sum _{i=1} ^n\frac ni = n\ln n\) 之类的东西。

莫队

基础操作,和上面对应,拆成 \(n\sqrt m\) (之类的状物)次修改然后结合分块,网络管理数列分块 9之类的,巨多无比。

子树问题或 \(k\) 级儿子问题,可以转化为序列问题跑莫队Blood Cousins Return植物生命力

发现回滚莫队的性质很适合优化多次查询的 DP:好吃的题目


感觉这样子写下去就写不完了,写点别的。

DP

常见的诸如边 DP 边处理某种和从而优化的东西,如前缀和,二进制和之类的。

在 bfs 等过程中 DP,比较有趣感觉,我能找到的题目不在 luogu,不粘了。

考虑相对排名而不考虑具体位置,感觉这个状态设计比较高级,放这里了 Permutation

很多时候大力可以解决很多东西,设计状态不要担心过多,后续优化就好:Modern Art 3 G

同余最短路等建模图论,背包

分治是好东西,解决很多问题:暑假时在做什么?有没有空?可以来学物理吗?

数学

这个我真不会。

图论

这个我也是菜到离谱了。

其他

使用 st 表优化复杂度一般可以扔一个 \(\log\),如区间 |&gcdlca 之类的,但是一定要算空间

注意到 \(\gcd_{[l,r]}\) 在确定一个端点后只会更新 \(\log\) 次。

bitset 的左右移的复杂度也是 \(\frac nw\),小心,别写巨大东西,不如暴力就老实了。
我写过的: (((((((bit[a] << b) >> x) << x) << (N - (y + 1))) >> (N - (y + 1))) | now) == now);

不要相信任何 stl 容器的常数,尤其不要相信 unordered_map

出现博弈考虑一下二进制下打表找规律。

一些复杂度有关的东西。

\[\sum _{i=\sqrt n}^n \frac{1}{i^2} = \frac 1{\sqrt n} \]

\[\sum _{i=1} ^n\frac ni = n\ln n \]

\[d(n)\approx n^{\frac{\ln2}{\ln\ln n}} \]

posted @ 2025-11-28 10:15  樓影沫瞬_Hz17  阅读(19)  评论(1)    收藏  举报