Tricks
- 
链表题使用 链表套链表 可能有奇效! 
- 
std::list::splice可以 \(O(1)\) 合并两个链表
- 
拆点:可以解决最短的长度为奇数/偶数的最短路 如:P5663 [CSP-J2019] 加工零件 
- 
表达式转换:最好不要直接处理中缀表达式,可以转化为后缀表达式后再处理,这样会更方便。 
- 
表达式树:大模拟中常见。 
- 
在 int范围内选 \(n\) 个数,这 \(n\) 个数两两互质的概率很低。当 \(n\ge4\) 时几乎不可能。(ps:可以用来暴力)
- 
题目一定要一个字一个字看!题目一定要一个字一个字看!题目一定要一个字一个字看! 
- 
meet in the middle 万岁! 
- 
不开 long long见祖宗!
- 
\[\bigotimes\limits_{i=1}^{n}i=\begin{cases}n&n\equiv 0 \pmod 4\\ 1&n\equiv 1\pmod4\\n+1&n\equiv2\pmod4\\0&n\equiv3\pmod4\end{cases} \]推论:一个长度为 \(2^n-1\,(n\ge 2)\) 的排列异或和为 \(0\)。 
 证明:因为 \(n\ge 2\),所以 \(4\,|\,2^n\)。所以 \(2^n-1\equiv -1\equiv 3\pmod 4\),故结果为 \(0\)。
- 
扩展域并查集:在同一个集合中,如果一个条件成立,那么其余条件均成立;如果一个条件不成立,那么其余条件是否成立均可。 
- 
找规律时可以用程序枚举周期! 

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号