sb 错误
- 数组开小。很容易 \(2 \times 10^5\) 或 \(10^6\) 就开成 \(10^5\),或者各种变量的数据范围混用,\(m \leq 5\times 10^5\),结果只开到了 \(n\) 的数据范围 \(10^3\)。(upd. 2020.8.31),upd 2021.2.6 又犯了一次。
- 多测不清空。算法中要用到 \(a[n+1]\) 结果只手动清到了 \(n\)。(upd. 2020.8.10)当然有的时候多测是修改一部分值,如 CSP-S 2020 T4,遇到这种情况就要检查每次询问结束 \(a\) 数组是否还原到了询问前的样子(upd. 2020.11.8)upd 2021.2.16 又犯了一次
- 忽略了一些比较隐蔽的条件。例如 APIO2020 T1 一开始忽视了 \(\sum f(k)^2 \leq 4\times 10^5\) 这个条件,以为是给部分分用的,结果就一直在想 \(n \log n\) 级别的算法,浪费了很多时间,事实上这隐含着 \(f(k) \leq \sqrt{4\times 10^5}\) 的条件。(upd. 2020.8.15)
- 把题目中的 \(a\) 与 \(b\),\(n\) 与 \(m\) 的含义搞反了,或者没看清读入顺序,明明是先 \(m\) 后 \(n\),读成了先 \(n\) 后 \(m\)。(upd. 2020.10.6)
- 写了个错误的程序对拍(upd. 2020.10.6)
- 碰到那种二维平面的题,“格子”与“格点”,以及坐标轴的方向搞错了。(upd. 2020.10.14)
- 想出了一些复杂度较高却又没啥办法优化的 dp 式子,然后就一直盯着它进行优化,可有时这种题偏偏不是 dp(upd. 2020.10.15)
- %lld 写成了 %d(upd. 2020.10.19)
- 二分上界开小了(upd. 2020.10.19)
- 注意 0 没有逆元,有的时候计数 dp 用到除法(除以另一个 dp 值)那基本上不太行的(upd. 2020.10.19)upd. 2021.7.6 其实是可以的,按照 SDOI 切树游戏 的套路来搞即可
- 考试最开始没有花时间把每道题都浏览一遍,导致有时候最后一题反而能拿些分的却没拿到。(upd. 2020.10.22)
- 没有对拍,或者对拍浪费了很多时间,导致该拿的分没拿到。最后与自己的预期相差甚远。(upd. 2020.11.1)
- 手写队列、栈等时以及莫队中,++ / -- 是前置还是后置要想清楚。(upd 2020.11.17)
- 多测的时候,有时候读到一部分数据就可以确定答案了,但此时你不能直接 continue,要把全部数据读完(upd. 2020.12.11)upd. 2021.10.21 差点又犯了一次,还好最后脑子比较清醒想了起来(
- 有的时候,值域 \(\leq 10^9\),而模数只有 \(998244353\),此时你就不能用直接加,大于 \(mod\) 就减去 \(mod\) 的方式取模(upd. 2021.1.12,这个是 csy 跟我讲的)
- 有时候点标号从 \(0\) 开始,进而会习惯性的 \(+1\),即
int u,v,w;scanf("%d%d%d",&u,&v,&w);u++;v++;
。结果把u++;v++
写到了scanf("%d%d%d",&u,&v,&w);
的前面。(upd. 2021.1.31) queue
忘pop
(upd. 2021.1.31),upd. 2021.2.18 又犯了一次,upd. 2021.6.28 梅开三度pw10,hash,pipe
在 linux 下是关键字,但在 windows 下测不出来,要格外注意(upd. 2021.1.31)- 内外层循环变量名取重了。这种情况即使开 -Wall 也测不出来(upd. 2021.1.31)upd. 2021.4.7 开 -Wshadow 似乎可以测出来
- 莫队记得先
push
再pop
,不然可能会出现一些奇怪的问题(upd. 2021.2.1) - 有的时候数组有用的下标不会越界,但可能会用到越界的下标,即使这些越界的下标没有用也要记得把数组开大,否则会出现一些奇怪的问题。(upd. 2021.2.1)(upd on 2021.10.22,有时侯比较明显的下标越界编译器会提示出来,譬如如果你循环到 2e5 数组只开了 1e5+5 它就会显示 iteration 100005u invokes undefined behavior)
- 读入中的变量名可能跟循环中的变量名重复(譬如 \(k,d\) 等)(upd. 2021.2.2)注:2021.2.6 又犯了一次该错误,线段树递归时的 \(k\) 与读入的 \(k\) 重复了。upd. 2021.4.7 开 -Wshadow 似乎可以测出来
- 要特别注意运算过程中爆 int 的情况,譬如如果 \(a\) 为 long long 型变量,\(b,c\) 为 int 型变量,那么如果你写
a*(b*c)
那么程序会先计算b*c
的值,就有爆 int 的风险。(upd. 2021.2.3) - 遇到与网格有关的题的时候,要特别注意是四连通还是八连通(upd. 2021.2.4)
- 冰茶姬忘了初始化(tips:如果实在忘记可以写
int find(int x){return (!f[x])?x:find(f[x]);}
)(upd. 2021.2.6) - 可撤销冰茶姬千万不能路径压缩(upd. 2021.2.6)upd. 2021.10.22 打线段树分治模板时又犯了一次(
- static 关键字修饰的变量与全局变量的唯一区别就是 static 关键字修饰的变量不能在局部域之外的地方被调用,否则会 CE。故如果你用 static 修饰的变量当作临时备份那么它在接下来几轮的递归中也会被修改,进而会导致 WA。(upd. 2021.2.7)
- 可撤销冰茶姬按秩合并的“秩”是深度,而不是树的大小,按大小来合并的叫“启发式合并”(upd. 2021.2.7)
- 有时候做计数题的时候要我们对 \(p\) 取模,有时候我们会特判掉一些情况(比如说 \(2\)),但你不能直接
puts("2");
,要printf("%d\n",2%p);
,经常 有时候会有毒瘤出题人专门卡这个。(upd. 2021.2.15) - 三个 <998244353 的数加起来会爆 int(upd. 2021.2.16)
- (其实是 30 的扩展),有的时候计数题会写
ans=(ans-sum+MOD)%MOD;
,然后你发现自己式子推错了,不是减而是加,此时你不能只习惯性地把减号改成加号,而应当把后面的+MOD
去掉,因为三个 <998244353 的数加起来会爆 int(upd. 2021.2.16)upd. 2021.10.21 又犯了一次 - 把模数看错,1e9+7 看成 998244353(upd. 2021.2.16)upd. 2021.5.1 又犯了一次
- 当把一个数组赋上 -INF 时,以前习惯写
memset(dp,128,sizeof(dp));
,但实际上这样是不明智的,因为 0x8080808080808080 大约是 \(-9\times 10^{18}\),两个 0x8080808080808080 加起来会爆 ll。所以最好写memset(dp,192,sizeof(dp));
,这样两个加起来不会爆。同样道理最好也不要写memset(dp,127,sizeof(dp));
而改写memset(dp,63,sizeof(dp));
(upd. 2021.2.18) - 当你忘记运算符的优先级时最好多加几个括号,这样不会吃亏(upd. 2021.2.19)
- 敲 SA 的时候,数组长度有的时候不是 \(n\)(长度变量名为 \(m,k\) 或其它的),但总习惯性地敲成 \(n\)(upd. 2021.2.22)
- 变量类型一定要注意,不要出现
int
开成double
的情况,否则可能会让你调到怀疑人生(upd. 2021.3.13) - set 上定义的 "<" 一定要是严格偏序关系,也就是必须满足传递性,必须不满足自反性,否则可能会出问题。(upd. 2021.3.13)sort 里的 cmp 函数也是如此(upd. 2021.8.16)
- 当 \(x\) 超过
int
范围时,调用builtin_popcount
会出问题,需调用builtin_popcountll
(upd. 2021.3.15) - 对于结构体中含数组的,一定要记得手写构造函数清空数组,否则会出现奇怪的问题(upd. 2021.3.26)
- 对于字符串长度,比如说读入长度为 \(3\) 的字符串,数组长度千万不能只开到 \(3\),一定至少开到 \(4\),因为程序读入字符串后会自动在后一个位置填上
\0
,如果只开到 \(3\) 会导致数组越界(upd. 2021.3.26) - (其实也不能叫 mistake?)在 C++11 下交换两个 STL 是 \(\mathcal O(1)\),不开 C++11 下交换两个 STL 是 \(\mathcal O(\max(\text{STL 大小}))\) 的,这一点需注意(upd. 2021.3.27)
- 在写网络流的时候,一定要算好网络流的边数和点数的规模,不要随随便便地就将
MAXV
和MAXE
设为一个“感觉比较大”的值,比方说 2e5,这样有可能会 RE(upd. 2021.3.31) - 注意浮点数误差,碰到 double 的比较运算时,最好不要直接用
!= == < >
什么的,写个 EPS 比较大小(upd. 2021.4.1) - 带修莫队时间轴那一维指针,记得先更新贡献再移动指针(upd. 2021.4.1)
- IDFT 完后数组中的元素不要忘除以 \(n\)(upd. 2021.4.2)
- 在进行多项式 EXP 时一定要保证常数项为 0,否则会出现奇怪的问题(upd. 2021.4.2)
- 写矩阵乘法的时候一定要注意乘法的顺序(upd. 2021.4.5)
- 一定一定要看清楚部分分的数据范围,subtask 判断是否在数据范围内时不要判错(联合省选 2021 D2T3,upd. 2021.4.11)
- data 在 C++17 上是关键字,在 OJ 上提交时需注意(upd. 2021.4.23)
- 如果模数是 \(2\times 10^9\) 级别的,要注意加法溢出的可能性!!!!!(upd. 2021.4.24)
- 求 SCC 弹栈时一定要把对应节点的
vis
设为 \(0\)!!!111(upd. 2021.4.30) - 在二分 check 的过程中忘了清空(upd. 2021.5.8)
- 注意
set
的迭代器失效问题,具体可见这里(upd. on 2021.5.13)(upd. on 2021.6.30) - 对于那些濒临爆溢出的数,比方说 \(2000\) 个 \(10^6\) 级别的数相加(\(2\times 10^9\)),也要注意爆 ll 的可能性(upd. 2021.6.25,vp edu 89)
- 注意运算符优先级!(upd. 2021.6.30)
- 写 wqs 二分时注意斜率有可能为负,因此二分下界不能想当然地设为 \(0\)(upd. 2021.7.13)
- 注意
int
型变量不要错误地开成bool
(u1s1 感觉int
严格强于bool
?)(upd. 2021.7.29) - HDU 上 long double 不要 printf(其实大概不算 mistake,大概算 HDU 的 feature)(upd. 2021.8.10)
- 离散化不能只 sort,记得 unique,也要记得要在 unique 后的数组中 lower_bound(upd. 2021.8.11)
- 对于一个
int
型变量 \(x\),如果我们设了一个int
型的标记变量flg
,flg=1
当且仅当所有 \(x\) 都 \(\ne 0\),那么如果你写flg&=(x)
就凉透了,要写flg&=(x!=0)
(upd. 2021.8.11) - 有时候我们会用 \(0\) 表示空,但如果数的值域就包含 \(0\) 就不能用 \(0\) 了,得用 \(-1\),如果还包含 \(-1\) 就得用 \(\infty\)(upd. 2021.8.13)
- !!! 如果比赛不开 C++11,提交前记得检查是否有 C++98 禁止的东西,点名
vector<vector<int>>
、for(int x:g[u])
、[&](int x,int y){return dfn[x]<dfn[y];}
!!!!!(upd. 2021.8.22) - (大概也不能算 mistake)倍增把小的那一维放在前面会快不少(upd. 2021.9.29)
- LCT 一定要记得
pushdown
啊!!!!!!!(upd. 2021.10.11) unordered_map
空间常数很大,对于部分空间限制较小的题,使用unordered_map
有可能会导致 MLE(upd. 2021.10.22)- STL 的
size()
返回的是 unsigned,如果你那一个signed
减去一个unsigned
结果可能会溢出,这点需特别注意(upd. 2021.11.5) - 注意特判孤立点(upd. 2021.11.15)
sb 错误的更多相关文章
- 日记 + sb错误
置顶消息cpdd 1.29 完了,文化课没了 我是废物 1.28 更新了自己的副标题 前副标题:Future never has to do with past time,but present ti ...
- 【拒绝挂分】盘点蒟蒻ghy的各种sb错误
1.m与n打反(打错) NOIPd2t2 50变15爽不爽啊.jpg 某次信心赛四道sb题里面最sb的一道 sort里面的m打成n 100变40爽不爽啊.jpg(还有40我真的谢谢您了 2.没开lon ...
- 碰到这个SB错误,'Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.点办
After launching MacVim you may get this annoying error message:'Taglist: Exuberant ctags (http://cta ...
- 记录一下最近犯得sb的翻车错误
首先是: 数据范围是long long范围,然后写了一个暴力,觉得过不去,于是开了int范围,最后写了个能骗过所有数据的骗分,然后没开longlong... 接着是: for(int i = l; i ...
- 当PsychicBoom_发觉自己是个大SB的时候……
这些题都是没ac调了好久发现是sb错误的题--. 想清楚再写题!!! 2019.4.18 洛谷P5155 [USACO18DEC]Balance Beam 转移方程\((a[l[i]]*(r[i]-i ...
- 记一次关于return的错误
有时候瞎JB程序,调一天东改西改,都发现不了错:到最后弄出来发现就是那样一个SB错误,真不知道该笑还是该哭. 这个if语句中的return,如果加了那么判断了if语句成立后,下面就不再执行了. ...
- 【POJ1185】炮兵阵地 状压DP
感觉总是被一些SB错误所困扰... 差不多还是(模板题)注意数组空间的大小,和对于合法状态的判断. f[i][j][k]=max(f[i][k][j],f[i-1][l][k]+num[j]) (f[ ...
- WEKA运行LIBSVM出现problem evaluating classifier:rand
原来这个实验已经做了的.也出现了些问题,但是上网找到了解决方法,那个时候是完成数据挖掘的课程论文,用WEKA运行LIBSVM,也没有很深入,简单跑出结果就算了. 这次想着研讨会就讲这个,想着深入进去, ...
- Noip2016のmengbier
Day0 上午10点多上了火车,向三位学长问了一路去年noip他们是用什么心态去考的,明明老师和同学都说我正常发挥应该没什么问题但心里就是紧张的不行,就是害怕犯个sb错误爆上一道题TAT. 去试机.. ...
随机推荐
- keras框架下的深度学习(一)手写体识别
这个系列文章主要记录使用keras框架来搭建深度学习模型的学习过程,其中有一些自己的想法和体会,主要学习的书籍是:Deep Learning with Python,使用的IDE是pycharm. 在 ...
- 力扣 - 剑指 Offer 39. 数组中出现次数超过一半的数字
题目 剑指 Offer 39. 数组中出现次数超过一半的数字 思路1(排序) 因为题目说一定会存在超过数组长度一半的一个数字,所以我们将数组排序后,位于length/2位置的一定是众数 代码 clas ...
- (课内)信安数基RSA-基础&&解密加速
RSA基本实现 首先获得N比特的伪随机数:使用Random库中内容. randint(n,m) 表示生成一个在n和m之间的随机数, **表示乘幂. getPrime找素数,or 1运算是一种优化:如果 ...
- MAC 安装 apache ab 压力测试工具以及遇到的坑
ab 是apache对 http服务器进行压力测试的工具,它可以测试出服务器每秒可以处理多少请求.本文记录mac版本安装 ab 的步骤以及遇到的坑. 下载 进入 apache ab官网 下载页面. 安 ...
- JVM:体系结构
JVM:体系结构 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 概览 Java GC 主要回收的是 方法区 和 堆 中的内容 类加载器 类加载器是什么 双亲委派 ...
- 机器学习:KNN
KNN:K-nearst neighbors 简介: k-近邻算法采用测量不同特征值之间的距离来进行分类,简而言之为:人以类聚,物以群分 KNN既可以应用于分类中,也可用于回归中:在分类的预测是,一般 ...
- 最长子序列(线性DP)学习笔记
子序列和子串不一样.子串要求必须连续,而子序列不需要连续. 比如说\(\{a_1,a_2\dots a_n\}\),他的子串就是\(\{a_i,a_{i+1},\dots, a_j|1\leq i\l ...
- NavigationView使用简介
Android支持直接创建带有NavigationView的Activity,这里主要介绍NavigationView的逻辑. NavigationView通常是跟DrawerLayout一起使用.D ...
- 【转】PLI是什么以及怎么用
programmable language interface 这里就说给verilog用的一些系统函数,还是无双大大的帖子 首先介绍了怎么让你自己写的pli系统函数在ncverilog里面可以成功调 ...
- 用C++实现的数独解题程序 SudokuSolver 2.7 及实例分析
引言:一个 bug 的发现 在 MobaXterm 上看到有内置的 Sudoku 游戏,于是拿 SudokuSolver 求解,随机出题,一上来是个 medium 级别的题: 073 000 060 ...