tricytricks>>>>>
时刻谨记正难则反,包括但不限于数学题。
二进制贪心时一般从高位到低位
有关阶乘的整除问题尝试将几个阶乘合并。
正着推被卡了就反着推,不管是在思路上还是代码上。
看到取模推公式想转化:$a \bmod b=a-\left \lfloor\dfrac{a}{b}\right \rfloor b \(。
图论中不同时段开放的点想 floyd 性质。
数学题全开 `long long` 包括输入数据。
数论分块注意求和右边界 [P2261 [CQOI2007] 余数求和](https://www.luogu.com.cn/problem/P2261)
偏模拟类题目可以直接求出某些种类的答案满足的模拟条件极限之后可以根据这样极限进行选择或者多次询问 [CF 某题](https://vjudge.net/contest/638234#problem/E)。
试试将输入数据分开处理 [NOI 2015 并查集](https://www.luogu.com.cn/problem/P1955)
在过程中的某种行为可以尝试推到终点去做,无需在意发生的位置前提下。(幻兽对战)
线段包括问题可以统一右端点后看左端点性质(或者反过来)。
选几个数(可能带权)的最值,转换为前缀,后缀最大值+枚举
看到区间改想差分。
注意重边卡人,建议使用链式前向星存边:
[被卡 1](https://www.luogu.com.cn/discuss/872078),[被卡2](https://www.luogu.com.cn/discuss/805599)
区间 dp 消除后效性可以假设两边都已经被处理完 [洛谷 P1622](https://www.luogu.com.cn/problem/P1622)
某些题目可能不需要关系性质,只需要根据答案和总的性质枚举就可以。
\)\bmod 2$ 怎么怎么样 \(\rightarrow\) 只关心二进制最低位 \(\rightarrow\) 位运算操作。
用 lgr 常量记得加上几位:

区间 DP 和回文类题目时不需要再用 manacher 等算法因为区间 DP 会顺便把回文判出来。
不要用字符串存 int !!!!!

区间 DP \(\rightarrow\) 从中分割 \(\texttt{or}\) 从两边合并。
区间 DP 值域过大把答案放状态里,把以前的状态变成答案。
可以求解满足题目中最低条件的情况 P2757。
线段树可以维护动态的哈希值。
树结构有许多单调性不妨试试二分。
数数题可以先固定一个点看另几个点满足条件的有多少个然后乘法原理。
(上面两个结论可以完成orz 神仙二分题)
倒着推两种方法:从目标数组倒着推 \(\texttt{or}\) 把操作反过来推。
某些神金搜索题想 dfs+dp
状压dp也可以表示有顺序的操作(这个位上的 1 代表这一次操作在 1 上)P3694 邦邦的大合唱站队
二分答案区间加区间操作可以向右操作 Present.
随机化算法在块不能正好拆分时很有用。
向上取整直接用公式 \(\left \lceil \dfrac{x}{k} \right \rceil=\dfrac{x+k-1}{k}\)
模数不保证是质数的题目尽量不要用逆元尝试把除法变成乘法必然会被卡 P5520 [yLOI2019] 青原樱。
寻找前 \(m\) 个数试试堆。
要求的答案是乘出来的考虑枚举因数。
有时候答案的情况数可能有限这时可以直接暴力 选数2^n
等差数列的差分数组的每一项值都相等,然后可以扔到线段树上link。
线段树维护种类看种类的左右端点然后类似容斥 link。
迁移自洛谷

浙公网安备 33010602011771号