一些坑点(不断更新)
1.SPFA vis数组忘记清空....
2. 加法取模优化时ADD写错....
3.线段树query时别pushup
4.卢卡斯定理预处理阶乘逆元时不要超过模数的阶乘
5.dp难处理的时候考虑记搜
6.优化常数的时候注意是否优化会导致成为负优化....
7.写代码的时候注意一下吧warning基本都消掉 特别是变量重复
8.矩阵乘法注意初始矩阵范围
9.题目一定注意边界条件!!!!把各种等于1等于n的情况考虑完
10.一种情况如果难以想清楚分类把所有情况都找出来理清思路
11.线段树update记得pushup,pushup的时候记得把所有标记都捡上来
12.位运算各种骚操作关键时候有奇效
13.可持久化相关问题可以离线解决 树状数组维护一些dfs序问题很fastest
14.下次打错文件名剁手!!!
15.初始化的时候判 != 和 == 分清楚 别被这种傻逼错误坑了ovo
16.多组数据一定要记得清空啊qaq 链式前向星什么的再翻车就凉了
17.数组不要开小了啊啊啊啊 m和n不同阶的出题人应该阿了
18.可持久化并查集更新联通块深度不需要新开点 因为此时已经新开过了一个版本, 但维护其他点上的信息的时候要记得新开点qaq 这里好难想通啊
19.能暴力过就最好不要优化, 你永远不知道你会给你的代码加上什么可怕的负优化
20.初始化的时候没有memset就一定要记得检查是否初始化完要用的值
21.最大流用dis代替vis的时候记得原点dis是1不是0啊
22.(int) 的函数记得 (return)
23.(unordered\_map)尽量少用,元素多的时候特别慢
24.重构代码调(bug)可能比直接调要快的多
25.记住点分治搞出来的淀粉树和原来没关系啊
26.二分答案记得调好边界啊 不能只用一种办法
27.搞清楚(n)和(m)...
28.(unique)会破坏原数组... 离散完还要用的话记得保存
29.(define)的时候记得打括号,不然会被运算顺序坑
30.注意题目的上界到底是(n)还是自己算的一个(cnt)
40.变量名字相似的话一定不要搞混了 啊
41.重载运算符如果比较的那一维相等的话一定要判不相等的情况,不然放(std::set)里就直接被它去重了....fanwei
42.如果高分暴力打起来比较简单的话就不要去硬刚正解,考试的时候分数更重要
43.__gnu_pbds::gp_hash_table不用负数和(long long),不然慢到炸裂
44.考试的时候没有大样例一定要多造几组数据去测,不然正解写(wa)很难受啊
45.注意各种边界情况是否要特判,包括不限于二分等
46.(Topsort)加元素不要把(de[i])搞进去了啊....
47.(hash)不要写成前缀和那个样子,每个对应乘自己的幂次就(ojbk)了
48.位运算要记得是与上什么啊...
49.搜索不要写成状压的样子 不然就不能剪枝了。yao
50.记得观察数据范围 函数传(longlong)到(int)不会报错但是会莫名(wa)啊....
51.然后一定思考大于等于什么等于能不能取,是否是严格大于
52.还有一点就是注意(inf)要适配合适的大小,有时候正负(inf)不同阶的话要满足相加后阶为高的那个....
53.尽量不弃疗 少用STL数据结构
54.离线询问的时候记住操作的东西是什么....
55.圆方树(dfs)的时候思考怎么判出栈
1.比较难写的暴力也要去写
2.环上路径计算处理错误
3.暴力也测一下.可能最简单的分都过不了..
4.return printf("%d
", ans) 记得后面接,0
5.做题前带脑子 不要直接上 想清楚再写
6.特殊性质的点要和暴力拍
7.期望题分开算或者算贡献,主要考虑线性性
8.暴力常数写小点不然可能最简单分都没有
9.复杂度接近正解的算法一定要卡常
10.写了正解不要飘...找自己代码hack点hack
11.还是暴力不要写挂啊
12.难题不要弃疗,从最简单的部分想起,记得分析复杂度
13.推不出性质不要慌 冷静下来重新想
14.对于一个很大的数观察可能质因子会很少 设计与这个相关的算法会较优
15.贪心错了也别慌 放在namespace里和后面写的东西取更优也可以
16.多组数据的题最好定一个数组清一个
17.做不出题心态不要蹦
18.数据太大?分块打表! 一些套路不要忘了
19.学会推性质 一些数位相关的考虑用trie
20.考试心态要好 搞不出就找规律
21.暴力常数写小 说不定就这样水过去了
22.noipSTL还是少用 会被卡常...
23.根号相关的算法冷静分析
24.一些普遍成立的结论讨论边界
25.Set维护一些离线的操作比较方便
(After NOIp)
1.ddp更新要在计算(now)之前
2.多项式相关注意边界条件
3.多项式数组不要调用重复了,最好临时开
4.不要考试的时候写一些奇怪的操作...一定要按记忆里的方法写,dfs是先传递信息再往下搜啊
5.读入父亲给出树的时候倍增要预处理啊...
6.长链剖分考虑一下下数组不要定的太像
7.费用流不要求最大流的时候考虑取min
8.注意一下点集与边集的数组大小,不要RE了
9.多组数据一定要把样例多复制几遍测试,挂分会亏死去
10.题目的信息一般有用,有时可以针对数据随机方式解题
11.筛欧拉函数的时候多个质因子只有第一个要减1
12.杜教筛的时候记得是从(2)开始算
13.对于从父亲转移的东西特判根没有父亲
14.指数模意义下运算记得是模(mod -1)而不是mod
15.AC自动机一定要记得build....
16.遍历数组的时候一定用循环变量而不是数组尾部指针!!
17.模数很小的时候也要注意取模!
18.LCT维护边双时在Access的时候要把真的父亲换回来。
19.网络流0权边要么不建,减了就要有双向边,不然会导致编号混乱。
20.多组数据清空完全!
21.DP的时候一定要写下来状态表示什么。
22.二维数组记得寻址优化 不要搞反顺序。
23.sb错误不要犯了。。i,j干啥的都能搞错。。
24.做SAM题的时候注意模板不要错了。。。
25.TLE记得选择合适的Language。
26.暴力也要取模。
27.MTT的时候IDFT时实部虚部都要除n
28.换变量要彻底。
29.读字符串不用cin,scanf(“%s",s)更好。
30.扩展卢卡斯如果模数已知记得预处理阶乘
40.预处理阶乘的时候要记得继承上一个
41.多项式预处理 Rev 数组记得循环到 limit.
42.线段树query 和 update 都记得判掉 x > y.
43.分清楚n 和 m
44.计算几何一定要写eps
45.暴力一定卡上下界 不然容易被卡常。
46.贪心的时候注意策略 从小到大还是从大到小 不要犯noip同样的错误。
47.搜索的时候记得观察会不会死循环 不然考虑记忆化。
48.分治FFT的时候注意卷起来的两个多项式次数不要搞反。
49.线性求逆元只能模数为质数。
50.欧拉定理一定要求出(phi)。
51.求逆元尽量写exgcd,通用度最高(记得+mod%mod。。
52.CDQ分治考虑先修改状态还是先填入状态。