调试信息别忘了删??
尤其是带if的……
有好几个dfs的时候,参数尽量写得不同啊。。或者把后面用的放在前面,不要出现一个调用另一个……
开始写代码先把所有特殊情况判掉再说……
矩阵。。记得乘向量……
费马小定理只有质数才能用
欧拉定理也要互质
诸如 max(solve1(),solve2()) 好像是先执行 solve2()……不过这个可能是未定义行为。。还有那种printf ++i 什么的,貌似因为用栈实现的,所以会比较奇怪
<0 <=0 ???
continue写成break
找环啊,记得标记vis数组……不然排列上会T得很惨啊
树剖要先跳 dep[top[x]]
比较深的,而不是 dep[x]
比较深的点
lower_bound
一定一定要注意返回 end()
的情况
找三个数最小值要这样 if (x<=y&&x<=y)
不能 if (x<y&&x<z)
启发式合并如果在集合上有tag,新加的要把tag消掉
unique
前要先 sort
DP尽量初始化成无穷小吧,如果不初始化就必须要确保不访问到非法的状态,否则可能会出现一个状态是非法的但却被当成 0 统计到答案里了……无穷大的一般不太会出事,除非乘爆……
长链剖分要动态统计掉,不然后面会改掉
找 k 级祖先,结果访问到了栈里负的下标……
有些题实际点数是2n啦3n之类,for的时候要记得
好像快速幂碰到负数会陷入死循环?
dp完了要考虑一下最后是什么,是所有取min还是直接输出一个就好了
如果使用了奇怪的变量要特别小心,比如用V表示点啊……
求LCA的时候把 x!=y
写成 dep[x]!=dep[y]
,凉凉
单向边不要建成双向
- 怎么死都不知道
bfs
- 求最短路不要就dijkstra傻了一样还写错到现在都不知道怎么错的
置换要判单个环
- 555555
千万不要开着O2/O3调试!!
- 会调到自闭一脸懵逼。。用gdb输出中间值全都奇奇怪怪= =
联通分量搞完后,操作要搞清楚是原来的点还是缩过的点。。
不要交错= =
- = =
线段树更新完要update
- 板写错真的痛苦,不要离AK只有一步之遥……
优先队列最后一个不能pop了再判empty
- 这样会导致最后一个没被算进去……
整体二分的时候要把询问放在操作后面
- 我不会整体二分呜呜呜
期望的平方
- 这东西是真的不会。。
- 一般不能两个一次的东西直接乘,拆开
- 这题 的80pts做法,真的懂吗???
求逆元,要想一下会不会是0
- 比如概率题什么的,大概需要特判。。。。
不要随便用 while(q–) !!!!
- 代码里用到q的话就凉凉了,还怎么死的都不知道
- CF1137F Matches Are Not a Child’s Play 血的教训
DP注意后效性
- https://www.luogu.org/problem/CF1214D
注意逗号不要写成分号
- 看半天发现不了。。
矩阵乘法,注意要不要从0开始
- 令人懵逼
i,j乱写
- 包括但不限于 循环里 i i i 套 i i i ,虽然说有时候并没有什么关系
DP转移注意边界
- 不要访问到越界的下标,怎么凉的都不知道
多组数据不要memset
- 莫名其妙T得很无奈
复杂度落实笔头
- 诸如 n / k ∗ k n/k*k n/k∗k 之类分别最值就凉了
数下模数到底有几个零
- 1e8+7实在是太毒瘤了= =1e9+9也是
cmp忘记写return了
- 这个,到底是,怎么做到的= =我说优先队列的顺序怎么全乱了??
- -Wall忘开见祖宗
质数特判1
- …
宁愿多开long long也不要爆int
- 一定要注意
余数小于p
- 有些毒瘤出题人(xy题)会把余数搞大。。
cout默认输出六位小数,然鹅。。
- 如果刚好0.5就输0.5??傻逼玩意儿
搞清楚是上凸还是下凸
网络流里邻接表从0开始
- 忘记cnt=-1
- 实在不行以后所有图都cnt=-1算了,反正都一样
- 然后遍历的时候也要写对
n,m打反
- 十年OI一场空,nm打反见祖宗
- 印象中平时从不犯的错误
- NOIP2016 && NOIP2018 血的教训
数组开小
2018/9/19 UPD:我以后要是再数组开小就直播吃键盘!!!
2018/10/15 UPD: flag已倒。
- 眼瞎
- gdb时改小了然后忘记改回去
- 想当然
- 有些时候会要开两倍啊四倍啊或者 n + 1 n+1 n+1 啊。。
- 我吃 n n n^n nn 次键盘,其中 n = 19260817 n=19260817 n=19260817
没开long long
- 最近有越来越智障的趋势
- 10/25 囧rz
- 日常
模数写错
- 眼瞎
- 想当然
出题人毒瘤- 由于代码经常copy会导致const的常量忘记改……
变量写反
- 眼瞎
- 变量名太奇怪
- 手滑
没初始化
- 老年痴呆
读优写炸
- 老年痴呆
- 忘记负数
- >写成>=
- 忘记写引用了……还有chkmin/chkmax这些也一样的问题
特殊情况未考虑
- 老年痴呆
- 经验不足
样例太水- 思维不够缜密
写完了发现想错了样例都过不了
- 太懒没手算样例
中间忘记模
- 老年痴呆
for里i–写成i++
- 习惯性爆炸
- 用宏定义之后就没有问题了(除非宏定义写错了……这种情况也发生过,不过比较好查)
宏定义fr里的变量只在for里有用
- 有时在循环外定义int i,结果宏定义里又重新开了一个,于是就炸了。。
sort里的cmp大小写反
- 脑子短路
莫名以为代码挂了
- 把自己手造样例误以为是样例
- 样例输错
没开long double
- 实数的精度真是玄学
没清空
- 不仅仅是多组数据需要清空!!尝试不同情况时也要清空!!
- CF1085E Vasya and Templates
明明写了init()结果忘了调用
- 当然不只有init()
手动取模里忘记引用
- QAQ
排rank时忘记把num数组赋1到n
- 调很久调不粗来
交互题fflush要放在read前面
- 又是个调不出来的,自闭了。对着Idleness limit exceeded一脸懵逼。。
- 准确说是输出后面??
Tarjan里习惯性写上if (v[i]!=fa)
- CF 1137C - Museums Tour于是就有重边,于是就挂了。
- 2019/8/1又挂一次