一些注意事项

—— 简单题不 sb 是什么水平?

—— 国家队水平。

sb 错误

开 long long 时记得快读也要开 long long。

记得删调试信息,尤其是 cerr。

多测时要小心使用 memset。

operator 前面记得加返回值类型名。(dev c++ 不报错不警告)

跑的很快可能是因为被优化了,因此不要用空循环测运行用时。

(用于在线比赛)RE 可能是爆栈了。

不要假根号分治(可能大于 / 小于根号的同样可以处理小于 / 大于根号的)。

sb 想不到

计数 → 什么是重复的,什么是相同的。要做到不重不漏

最优化 → 什么是不优的,什么是不劣的。

要是怎么样就好了 → 能不能转化成这样。

存在反例 → 反例能否特殊处理。

只用管大小而不关心具体值 → 从小到大、从大到小考虑 / 二分答案转成 01。

构造最小值 → 找到一个较紧的下界,构造出下界(或者构造出一个方案,证明它是下界)。

多次二分时想一想能不能用双指针。

成双成对的元素,在一起怎么样,不在一起怎么样,经常可以用随机数异或来处理。

把整个序列分成若干段,每段求一个值再加起来求最值,暴力是 DP,经常可以用决策单调性优化。

图论相关问题(包括树上问题)可以考虑点和边互相转化。

能够卷积时想一想能不能直接背包。

求生成函数然后带值进去求答案,可以过程中直接算点值。