WrongAnswer_90

一言(ヒトコト)

Tricks

  1. 枚举子集:j=(j-1)&i,复杂度为 \(\mathcal O(3^n)\)

  2. 树上链加,单点和等于单点加,子树和。

  3. 不好处理的区间询问考虑离线扫描线或者可持久化数据结构。

  4. 区间,树链询问有可减性时考虑差分。

  5. 对于只合并,不分裂的东西,考虑启发式暴力合并。

  6. 流题建模时注意费用流先保证最大流,要检查建出的模型是否符合该性质。

  7. \(a \oplus b=c\)\(a\) 中有 \(x\) 位为 \(1\)\(b\) 中有 \(y\) 位为 \(1\)\(c\) 中有 \(z\) 位为 \(1\),则 \(x+y\equiv z(\mod 2)\)

  8. dijkstra 跑 \(n\) 次最短路可以直接记 \(d_{i,j}\) 表示 \(i\)\(j\) 的最短路,堆中存二元组。

  9. 离线卡空间。特别是分块和根号分治,前者因为根号个区间的特性可以暴力扫描序列维,统计每一块和每一个询问的关系,大大减小时空常熟。序列上值域的根分如果需要存很多小块的贡献空间可能到 \(\mathcal O(n\sqrt n)\),可以离线小的值统一处理。

  10. \(lca\) 为淀粉树上 \((u,v)\) 的 LCA,则原树上 \(dis(u,v)=dis(u,lca)+dis(lca,v)\),即淀粉树上 \((u,v)\) 的 LCA 原树上在 \((u,v)\) 路径间。

  11. 左偏树高没有保证。

  12. 贪心常用证明:决策包容等。

  13. 正难则反,正算困难可以考虑容斥的思想,用总方案数减去不合法数。

  14. 换维扫描线。

  15. 有效取模最多进行 \(\log V\) 次。

  16. 颜色区间相关考虑ODT,如果只有推平操作复杂度严格 \(\mathcal O(n)\)

  17. 有些强制在线是

  18. trie 上整体加 \(1\),低位存在前面可以做到 \(\mathcal O(\log V)\)

  19. 树上邻域问题可以只存孩子对父亲的贡献,查询时加入父亲的贡献。

  20. 复杂限制或许可以用许多容易维护的必要条件刻画。

  21. 字符串题先考虑 hash 和 bitset 乱搞。

  22. STable 暴力修改复杂度是 \(\mathcal O(n)\) 的,可以用来处理 \(n\) 次修改,\(n\sqrt n\) 次询问区间 RMQ 的情况(分块,块内维护前后缀,块间 STable 维护)。

  23. 淀粉树高是 \(\mathcal O(\log n)\) 级别,思考普通树上跑不动的暴力。

  24. \(20\) 以内数据范围:状压,数数题额外考虑容斥(感觉本质还是 DP,只是进行了类似 FWT 之类的操作合并的时候复杂度更优秀)。

  25. 矩阵树定理:外向树对角线存入度内向树对角线存出度

  26. 有向图欧拉回路个数: \(T\prod (deg_i-1)!\) 其中 \(T\)内向生成树个数。

  27. \(E(x^2)\ne E(x)^2\)。期望没有这种性质。

  28. 平面图最小割可以转化为对偶图最短路。

  29. 常熟大的实数乘法可以取 \(\log\) 转成加法。

  30. 树上数数的套路:点边转化

  31. SAM 数组本体点数开 \(2\) 倍,其他数组也要开 \(2\) 倍!

  32. SAM 沿着 \(\text{link}\) 向上走是在前面删字符。

  33. 静态问题主动分治。

  34. \(\sum_{p}\prod_{i=1}^n[p_i\leq a_i]=\prod_{i=1}^n a_i-i+1(\forall 1\leq i<n,a_i\leq a_{i+1})\)

  35. 二分图边染色最小值需要 \(maxdeg\) 种颜色,构造使用调整法

posted @ 2023-09-09 21:47  WrongAnswer_90  阅读(15)  评论(0编辑  收藏  举报