-
freopen
-
数组大小,空间问题
- FFT,NTT是开4倍空间。
- 网络流,Trie 照着空间限制开
- SAM开两倍
- 线段树开4倍。
-
long long 计数题,尤其注意开long long
-
多测清空
-
注意仔细审题。
-
多举反例,尤其是有一些求最优解的问题,不要刚想到一个贪心就认为是对的。
-
最大值最小,最小值最大是二分答案。
-
wqs二分用于指定选k个物品。
-
正难则反。考虑反向思考。
-
根号分治,小的存下,大的暴力,(@BSGS)
-
不会的题,考虑贪心骗分,也可以随机化,有的题可以写好几个贪心取最优。
-
树上和路径有关的考虑点分治。
-
前缀gcd,前缀&,前缀|都是只有log 种。
-
计数题,考虑dp
-
fib
(largesum_{i=1}^n f_i = f_{n+2} - f_2)
(large sum_{i=1}^nf_i imes i = n imes f_{n+2}-f_{n+3} +2)
-
2-SAT
-
基环树上dp,找到环,然后求出每个树的贡献,在环上合并。(@同桌的你)
-
Hash不光能用于字符串,还能用于判断序列一段区间某些颜色出现次数是否相同。(@大水题)
-
随机化说:你随了就A了 (@佛罗里达)
-
编译命令-Wall,注意c++11是否开启。
-
函数返回值
-
注意C(n , k) 与 (n , k) ....QAQ
-
0 ,除0,
-
变量覆盖,线段树的k,矩乘的k
-
srand(time(0));
-
快读,负数
-
期望的平方,平方的期望
-
set的erase(val) 是删去所有的val,只弄一个是erase(it)
-
最大值,不能太大,也不能太小。
-
for(int i = 1 ; i <= n ; ++i); // 这个分号,,,,,,
-
循环时,注意循环上界有没有变。
-
并查集。路径压缩,按秩合并。
-
lst , tot = 1 , sam
-
主席树log倍,最好再开大点。
-
变量冲突
y1
,time
,tm
,end
,next
,hash
,index
,ref
,pipe
,j0
,j1
,jn
,y0
,y1
,yn
,