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\)

  • 扩展域并查集:在同一个集合中,如果一个条件成立,那么其余条件均成立;如果一个条件不成立,那么其余条件是否成立均可。

  • 找规律时可以用程序枚举周期!

posted @ 2025-01-18 13:14  OIer_wst  阅读(35)  评论(0)    收藏  举报