计数(1):刻画

第一篇计数应该讲点比较具有普适性的东西,所以说这不仅仅是计数。

常见 trick:

  • 首先,找一个东西刻画结构。
    • 如图,树等,在结构上进行计数。
    • 特别的刻画方法有笛卡尔树,直方图等。
    • 当然有的时候在结构刻画上没有什么可以发掘的地方,没必要“这个东西结构刻画不够简洁所以必须要找到一个好的结构”
  • 其次,刻画合法条件。
    • 结构是为了辅助这一条的。
    • 特别的,如果合法条件难以满足,我们可以考虑钦定部分满足/满足部分/部分不满足/不满足部分,其它任意,然后任意。

接下来是一些关于思路上的东西

  • 难以刻画合法条件?先从一个构造性问题出发,这样可能能够找到尽可能简洁的方式确定合法条件。

  • 直接做很难?正难则反 CF1556F

  • 好难刻画?多规定点东西!多规定点,直到可以容易的刻画,然后再一点一点脱掉 P10004

    • 比如 P10004,注意到直接刻画真的太难了,所以我们强制规定正排列逆排列的连续段(虽然实际上我们不可能确定出来),此时我们发现容易刻画,并且脱掉“强制规定”的枚举也容易刻画了。
  • 好难刻画?少规定点东西!别考虑太细致的过程,从宏观处着手,比如从起点和终点。P7736

接下来是常用刻画技巧

  1. 对于直方图可以刻画的,将 \(\le x\)\(>x\) 分别看作 \(0, 1\) 再计数。也可以看作一种差分 agc049_e P12251

  2. 将邻接矩阵看作图再做打算,nowcoder 矩阵与排列

  3. 对于中位数,令小于 \(x\)\(-1\),大于等于 \(x\) 的为 \(1\),那么找到与 \(0\) 的后继就是找到了中位数。P2839

  4. 将序列看作一棵树,利用一点点减边容斥的想法,\(点数-边数=联通块数\)。P5825

  5. 时刻不忘 \(点数-边数=联通块数\) BZOJ 5473

  6. 树的直径中点重合,所以对于树直径计数可以从中点所在的联通块考虑。 XYD19495.热异常/牛客 Haitang and diameter

  7. LGV 引理多考虑起点和终点的关系。P7736 被板题击杀可还行,实在是怠惰。

  8. 增加维度。比如把时间看作一个维度。如 AT_abc216_h AT_agc013_d(这题有点忘了)

接下来是一些关于式子的技巧,更加细致吧

  1. 毫无头绪?把式子先写出来。

  2. 把式子未知项和常数项分离可能有奇效。P8329

  3. 必要的时候考虑一下单步容斥,真的挺牛的。P13275

  4. BEST 定理中直接记录树的形态而不是记录 Laplace 矩阵。 nowcoder 矩阵与排列(双杀

  5. 式子中出现了补集相关元素,那么求全集后除掉集合内元素。P4643 P3317

  6. 如果出现 \(f_i = \sum f_{i - j - 1}f_j\) 状物这题我会,ogf 一下 可以考虑根据括号序列给这个式子做一个组合意义。uoj424


一些特定的结构

括号序列

  1. 将左括号看作 \(+1\),右括号看作 \(-1\)。要求是前缀和大小大于等于 \(0\),最后等于 \(0\)
  2. 将左括号右括号增减看成折线。
  3. 将括号序列上树。

冒泡排序

冒泡排序有一种我见了一万次但是每次我都不会的美感。

  1. 二分 \(01\) 的技巧:正向排序相当于将最左边的 \(1\) 扔到了最右边,倒过来相当于将最右边的 \(0\) 扔到了最左边。
  2. 直接刻画的技巧:
  3. 增量刻画:冒泡排序到 \(i\) 这个位置保留的是
posted @ 2025-07-09 21:33  CatFromMars  阅读(30)  评论(1)    收藏  举报