蒟蒻zimindaada蒻智错误一览
CE :
0. 艹!永远要记住,%d
在64位系统输出ll
是能过编译,但是32位的会炸!!!!!!!
(CSP2020-S T1 80->0,80分下场)
(干脆别用printf和scanf了)
-
重
linux
关键字和std
关键字你是不是起了什么
time
,less
,begin
这些怪异的变量名?(无数次模拟赛爆零)
(建议大比赛的时候一定要用虚拟机在linux下至少编译一发) -
比赛打万能头爆零
NOI系列比赛不能打万能头!
(NOI Online #2 T1 50 -> 0)
WA :
-
忘开
long long
(过于经典,老见祖宗壬了)
(艹CSP2020-S T2 场上又见祖宗了……95->60) -
忘打
freopen
NOI系列比赛必须要打
freopen
!(NOIP2018PJ -100,一等变二等)
(NOI Online #1、#3 爆零)
(建议本地头文件里define
一些什么东西,然后用#ifndef
类语句先把文操打好(方便本地调试),免得最后忘了) -
你多测清空了吗?
(日常爆分+调题1h心态爆炸)
- 你真的觉得你多测清空了吗?你是不是把清空函数放在最后面,所以特判的时候没有清零啊?
- 你真的清空了所有的东西了吗?是不是有什么小数组没清干净啊?
- 什么你做完这些T了?题目是不是保证的 \(\sum n \leq sth\) ,然后恁是不是用了
memset
?
-
你的输出前面是不是永远有一个怪异的
11
?恁是不是把"
%lld
"打成愚蠢的"ll%d
"(调题一天,心态爆炸)
-
数组什么都存不进去?是不是
const int maxn = 0;
了?(CF调1500的题调1.5h当场心态爆炸)
-
费 马 再 世
\(\forall a,p\in \mathbb N^+,a^{p-1}≡a\) (迫真)
(没看到什么 \(p\) 为质数就立刻冲了上去,还naive的认为就是道sb题)
-
multiset
在erase
一个值的时候,会删除所有的等于这个值的元素。要正确删除的话须要先lower_bound
一边找到其中一个等于这个值的元素的指针,再erase
这个指针。
(心态爆炸无数次) -
取 膜 三 问:
你取模了吗?()
你模数取得多少?(998243533
,19280617
,2148473648
)
你真的取模了嘛?for(int i = 1; i <= n; ++i) scat[i] = scat[i-1] + (cat[i] = (C(2*i,i) - C(2*i,i+1) + mod) % mod) % mod;
(sb题调三小时) -
众所周知,二分只在所二分的东西有单调性的时候使用。
那么lower_bound / upper_bound
呢!(NOI Online 2021 B题打了正解,把 two_pointer 改成用
lower_bound
找下一个匹配的字符,然后假了就弃了打暴力, \(O(n^2) \rightarrow O(n^3), \; [80,100] \rightarrow 70\))
(草,就在同一个周末的正睿模拟,也是 B 题,写了个ST表+lower_bound
找当前最小值 (只用ST表维护就可以),然后弃了正解。我就是个废物) -
出现奇奇怪怪的负数,不只有可能是没开
long long
,还有求逆元的时候,被求数大于mod
,然后做快速幂之前也不模。(调abc276f,一道垃圾splay题调了一周,以为splay炸了,最后还是下了数据才发现的)
TLE :
-
恁不用快读用
cin
?研究表明,用
cin
输入超过1e6
个字符或数字时稳TLE。(不会快读之前心态日常爆炸)
-
freopen
忘删(日常)
-
STL的正确食用方式
相关研究表明,STL容器不能存超过
1e6
个元素。 -
你知道,用哈希存一个字符串的所有前缀/后缀串是 \(O(n)\) 的。
但是,你的unordered_map / unordered_set
知道吗那是你的前缀/后缀吗?!
(NOI Online 2021 B题用了unordered_set
直接存string
,导致 \(O(n^3) \rightarrow O(n^4), \; 70 \rightarrow 50\),没成前25%) -
(目前存疑)
unordered_map/unordered_set
的内部结构(非哈希)导致一旦存的数比较跳跃,其常数会变得很大
(LOJ 2156 \(O(n \sqrt{n})\) 正解被 \(n = 30000\) 搞TLE)
综上,我太菜了。