Trick 集合
Trick 集合
1. 基础
-
判断是否 \(\forall i\) 有 \(x < a_i\):
-
括号序列:
-
求有多少区间和为 \(0\):
- 令 \(s_i = \sum_{j = 1}^i a_j\),那么区间 \([l, r]\) 和为 \(0\) 即 \(s_r - s_{l - 1} = 0\),也即 \(s_r = s_{l - 1}\)。找满足这样的数对即可。
-
有多少区间和是 \(k\) 的倍数:
-
令 \(s_i = \sum_{j = 1}^i a_j\),那么区间 \([l, r]\) 为 \(k\) 的倍数即 \((s_r - s_{l - 1}) \bmod k = 0\),也即 \(s_r \equiv s_{l - 1} \pmod k\)。再令 \(t_i = s_i \bmod k\),然后找有多少 \(t\) 相同的数对即可。
-
-
给定 \(\{a\}, \{b\}\),求有多少区间 \([l, r]\) 满足 \(\sum_{i = l}^r a_i = \sum_{i = l}^r b_i\)。
-
令 \(c_i = a_i - b_i\),条件变成了 \(\sum_{i = l}^r c_i = 0\)。然后就是上一个的问题。
-
-
判断一个字符串中是否存在回文子串:
- 如果存在 \(s_i = s_{i + 1}\) 或 \(s_i = s_{i + 2}\) 即存在回文子串。否则没有。
- P3413
2. DP
-
转移成环:
-
尝试将 DP 方程展开解方程。
-
-
状态优化:
3. 图论
4. 树
- 树上 \(k\) 级祖先。
5. 数据结构
6. 数学
-
杨辉三角:
- \(\sum_{j = 0}^i (10^{j} \times C_i^j) = 11^i\)。
- 加法方案题解
-
\(\gcd\),当一个数 \(a_x\) 是所有 \(a_i(a_x \in \{a_i\})\) 的约数时:
- \(a_x = \min(a_i) = \gcd (a_i)\)。
- 选拔赛题解
-
方差:
-
\(\dfrac 1n \sum_{i = 1}^n(x_i - \bar x)^2 = \dfrac 1n( \sum_{i = 1}^n x_i^2) - \bar x^2\)。
-
-
预处理 \(i^k\):
-
\(x_1, x_2, \dots, x_k\) 的平均值为 \(\bar x\),与 \(k\) 无关的转化:
\[\bar x = \dfrac {\sum_{i = 1}^k x_i}{k}\\
\sum_{i = 1}^k x_k = k\bar x\\
\sum_{i = 1}^k (x_k - \bar x) = 0
\]
- 判断若干个实数乘积是否为整数
- 统计小数位数总数,和去掉小数点后质因子 \(2, 5\) 的出现次数的较小值。比较即可。
- P8972。