Trick 积累

  • 求中位数最大值的时候可以二分一个 \(mid\) ,将大于 \(mid\) 的数赋值为 \(1\),否则为 \(-1\)。判断是否有区间和大于 \(0\) 就可以判断出中位数能否大于 \(mid\) 了。(Freezing with style)

  • 看到 \(n \le 15\) 这种数据范围且是一道计数题考虑状压容斥。(CWOI)

  • 树上 \(u\)\(v\) 路径上的异或和可以转化为 \(u\) 到根的异或和异或上 \(v\) 到根的异或和。(P3401)

  • 如果两个数乘起来为平方数,可以先将每个数的平方因子除掉,然后这两个数必然相等。(CWOI)

  • 如果 \(01\) 串一段区间内有奇数个 \(1\),可以转化为这段区间的异或和为 \(1\)CWOI

  • 区间 \(l\)\(r\)\(x\) 最后一次出现的位置减去 \(x\) 第一次出现的位置等于 \(\sum i-pre_{i}(l \le pre_{i},i \le r,a_{i}=x)\)CF848C

  • 对于一棵树,如果一个点到其它点的距离和是所有点中最小的,那么此点为重心。(CWOI)

  • (\(a_i\) | (\(a_j\) & \(a_k\))) 等价于 \(a_i\) + (\(\bar{a_i}\) & \(a_j\) & \(a_k\)),其中 \(\bar{a_i}\)\(a_i\) 的补集。(CF1208F

  • 一个排列中的某个区间排序过后是一个差为 \(1\) 的等差数列等价于 \(\max-\min+1\) 等于区间长度。(CWOI

  • 有关相邻两数之差想到差分。(CWOI

  • 积性函数可以通过线性筛进行 \(O(n)\) 递推。(CWOI

  • 正难则反(CWOI

  • 网格图可以通过黑白染色转化为二分图(P2774

  • 判断 \(a_i\) 是否是在 \([l,r]\) 中第一次出现等价于判断 \(last_{a_i}<l\)。(P1972

  • 对于一个排列,\(\text{mex}_{j=1}^{i}a_j=\min_{j=i+1}^n a_j\)。(CF1905D

  • 有些时候可以尝试改变 dp 转移时的枚举顺序,把需要用来做转移的维度放到第一维去枚举。(CF1517D

  • 求一个某个值的区间和可以尝试用前缀和即 \(f(l,r)=f(r)-f(l-1)\)P3935

  • 对于一些计数题可能不需要考虑每个数具体的值而只需要考虑两个数之间的大小关系(P2606

  • \(i \times j\) 的约数个数等于 \(\sum_{x | i} \sum_{y | j} [\gcd(x,y)=1]\)。(P3327

  • 如果要计算浮点数乘法,为了不被卡精度,可以把每个数表示为 \(2^x\) 然后变为指数的加法。

  • 如果最终要求的期望但是不好直接算期望,可以先算概率,最终每个概率乘上它对应的贡献。(CF498B)

  • 如果要爆搜且最终层数不深,为了防止搜到很深的层数,可以使用迭代加深搜索。(CF93C)

  • \(\text{dp}\) 来计算价值或者计数时,如果不好直接算出贡献或者贡献有后效性,可以考虑把贡献拆开计算。(P10254)

  • 当时间复杂度和 \(\sum size_u\) 有关的时候考虑启发式合并(P7118

  • 博弈论的题有些时候倒着推或倒着 dp 会更方便(CF1966CCWOI

  • \(\max(a_j-a_i,0)=\max(a_j,a_i)-a_i\)ABC351F

  • \(01\) 矩阵可以联想到图的邻接矩阵。(CWOI

  • 图的邻接矩阵的 \(k\) 次方 \((A^k)_{i,j}=0\) 表示从 \(i\)\(j\) 没有一条长度为 \(k\) 的路径。(CWOI

  • 对于一个带点权的有向环,若点权总和非负,则一定存在一个点 \(i\),使得 \(i\) 到任意一个点的路径上的点权和都非负。(P10412

  • 若 dp 的答案很小,可以考虑交换 dp 的答案与状态,来减少时间复杂度(AGC033D

  • 对于一个不降序列 \(a\) 和它的差分数组 \(b\),有 \(\max(a_i)=\sum b_i\)。(ARC178C

  • 判断一个序列是否为 \(0101\dots\) 等价于判断差分数组的绝对值是否全为 \(1\),也等价于判断异或数组是否全为 \(1\)。(CWOI

  • 若网格图(包含白点和黑点)中的所有黑点恰好组成一个矩形当且仅当 \(sum_1+sum_3=4\),其中 \(sum_i\) 指有多少个 \(2\times 2\) 的网格中有 \(i\) 个黑点。(P4898

  • 不强制在线的题先考虑离线做(ABC356F

  • 曼哈顿距离和切比雪夫距离的互相转化(CF1979E

  • 对于一个质数 \(n\),若 \(i \not\equiv j \pmod{n},k \not\equiv 0 \pmod{n}\),则 \(ik \not\equiv jk \pmod{n}\)。(CF1734E

  • 对于一个质数 \(n\),若 \(xy \equiv 0 \pmod{n}\),则 \(x \equiv 0 \pmod{n}\)\(y \equiv 0 \pmod{n}\)。(上面的另一个形式)

  • 如果构造题要求构造出来的方案的值小于或大于某个值,可以考虑抽屉原理。(CF1450C2

  • 左旋和右旋后中序遍历不变。(CWOI

  • 对于一些含有 \(\min(A,B)\) 的式子可以分类讨论 \(A,B\) 哪个更大(qoj1281

  • 考虑时间复杂度的时候有一个经典的思想:若每一次都翻倍,那么总次数是 \(\log\) 级别的。(qoj1249

  • 若所有 \(a_i \mid lcm(b),b_i \mid lcm(a)\),那么 \(lcm(a)=lcm(b)\)。(CF1656H

  • \(a_i \nmid lcm(b)\) 等价于 \(lcm_{j=1}^{m}(\gcd(a_i,b_j))<a_i\)。(CF1656H

  • 如果将排列 \(p\) 看成一张图,若 \(i,j\) 不在同一个环内,那么交换 \(p_i\)\(p_j\) 可以使 \(i,j\) 所在环合并。若 \(i,j\) 不在同一个环内,那么交换 \(p_i\)\(p_j\) 可以使 \(i,j\) 所在环分裂。(CF1656G

  • 考虑二进制最大 / 最小值时可以从高到低 / 从低到高考虑。

  • \(x,y,z\)\(x \ge 2^b、y,z <2^b\),那么 \(x+(y\ \&\ z)>(x \ \&\ y)+z\)。(qoj1436

  • 判断两个区间是否相等可以用哈希。(ABC367F

  • \(n\)\((\)\(m\)\()\) 的括号序列可以转化为网格图上从 \((0,0)\)\((n,m)\) 的一条路径。

  • 网格图上求从 \((0,0)\)\((n,m)\) 且必须经过某个一次函数的路径,一个经典的技巧是找到第一次经过该函数的位置,把后半部分的路径沿这个函数对称。

  • 对折线图计数可以考虑连续段 dp(P5999

  • 看到求生成树个数,考虑矩阵树定理。(CF917D

  • 如果要求全部满足条件或者全部不满足条件,可以考虑容斥。

  • 一维随机游走的期望距离是 \(\sqrt{n}\)。(P7606

  • 计算某个式子的值可以考虑它的组合意义。(CWOI

  • 维护删边操作可以把整个操作序列倒过来就变成了维护加边操作(ABC375F

  • \(n=\sum_{d \mid n} \phi(d)\)ARC185E

  • \(\gcd(i,j)= \sum_{d \mid i,d \mid j} \phi(d) = \sum_{d \mid i} \phi(d)[d \mid j]\)ARC185E

  • \(C_{n}^{m}\) 为奇数,则说明 \(m\) 的二进制位是 \(n\) 的二进制位的子集。(ARC156D

  • \(C_{n}^{s_1,s_2,s_3,\dots,s_k}\) 为奇数,则说明 \(s_1,s_2,s_3,\dots,s_k\) 的二进制位是 \(n\) 的二进制位的划分子集。(ARC156D

  • 维护类似与向上跳的操作可以考虑倍增(CF1707E

  • \(n\) 的范围在 \([30,50]\),也就是 \(2^n\) 不能过但 \(2^{\frac{n}{2}}\) 能过的时候,考虑折半搜索。

  • 求类似于绝对众数用摩尔投票。(CWOI

  • 若将一个序列的所有正序对 / 逆序对连边,则每个联通块都是一个区间。(ARC187B

  • 在 dp 时不好直接算代价可以考虑费用提前计算。

  • 求异或最大最小值或者异或值小于 \(k\) 的数的个数可以用 \(01\text{ Trie}\)。(CWOI

  • 若边权种数很少,可以用多个队列做 bfs 求最短路。(CWOI

  • 竞赛图缩点之后是一条链。(CF1498E

  • 竞赛图中若 \(out_u>out_v\),则 \(u\) 能走到 \(v\)\(out\) 为出度。(CF1498E

  • 有时可以通过二分把一个序列变为 \(01\) 序列。(P2824

  • \(\prod(\sum_{i \in S} a_i)\) 的组合意义是从每个集合中选一个关键点乘起来,然后把所有方案相加。(CWOI

  • 线段树维护函数复合。(P4041

  • 区间异或和等于两端点的前缀异或和异或起来。(AT_hitachi2020_e

  • 构造一种方案使得答案最大可以先算出答案的理论上限,然后考虑能否达到上限。(AT_hitachi2020_e

  • 数值倍增法(CF1844G

posted @ 2023-12-19 11:39  Creeper_l  阅读(66)  评论(0编辑  收藏  举报
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 世间美好与你环环相扣 柏松
  3. 3 True love tired
  4. 4 一笑江湖 (DJ弹鼓版) 闻人听書_
  5. 5 最好的安排 曲婉婷
  6. 6 星星在唱歌 司南
  7. 7 山川 李荣浩
  8. 8 On My Way Alan Walker
  9. 9 百战成诗 王者荣耀·100英雄官方群像献礼歌
  10. 10 雪 Distance Capper / 罗言
  11. 11 Edamame bbno$ / Rich Brian
  12. 12 半生雪 七叔-叶泽浩
  13. 13 Catch My Breath Kelly Clarkson
  14. 14 Love Is Gone SLANDER / Dylan Matthew
  15. 15 Endless Summer Alan Walker / Zak Abel
  16. 16 悬溺 葛东琪
  17. 17 风吹丹顶鹤 葛东琪
  18. 18 Normal No More TYSM
  19. 19 哪里都是你 队长
  20. 20 Stronger Kelly Clarkson
  21. 21 廖俊涛
  22. 22 消愁 毛不易
  23. 23 The Runner Yubik
  24. 24 踏山河 七叔-叶泽浩
  25. 25 Waiting For Love Avicii
  26. 26 在你的身边 盛哲
  27. 27 Dream It Possible Delacey
  28. 28 凄美地 郭顶
  29. 29 满天星辰不及你 ycc
  30. 30 侧脸 于果
  31. 31 阿拉斯加海湾 蓝心羽
  32. 32 虞兮叹 闻人听書_
  33. 33 离别开出花 就是南方凯
  34. 34 盗墓笔记·十年人间 李常超 (Lao乾妈)
一笑江湖 (DJ弹鼓版) - 闻人听書_
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.