错误总结
更常见,广泛的错误
WA:
- longlong是否开全
- 数组大小是否过大/过小
- 没有初始化全/边界情况没有考虑/需要多次初始化
- 没删完调试
- 全局变量
n
的赋值在某一个函数内写成int n=1;
全局中的n没有改变。 - 特殊考虑?n=1?
- 数据编号为 1~n 还是 0~n-1
RE/MLE/其它?
- 把函数类型写错了
- 混淆了几个名字相近的变量
时间/空间/越界问题
一个字符,按字母表的顺序向后移动 x 位(字母表是一个环)。不能这么写
c+=x;
if(c>'z')
c-=26;
这样可能会越界。
这样是对的:
if(c+x>'z') c+=x-26;
else c+=x;
注意bitset的空间!!。可能会导致错误
写部分分的数组如果比较小,要注意全局变量,公用的那些数组要开到最大。
const ll mod
!!!
不用 const
会导致 TLE.
如果你的某一个式子中有x-y
,一定注意它是否一直为正。不只是它作为数组下标时要注意,在其他时候可能有特判。比如网络流中,不会有负数限制。这道网络流
在集合中表示元素时,如果标号从1还是,就是1<<(x-1)
,如果标号从0开始,要注意是1<<x
关于STL:
- 用map或者set的时候 如果你的某一维是自定义结构体,就需要重载运算符。但是注意
map<node,ll>
如果你乱写了operator <
那么在map去重的时候就会出现问题。
比如你写的是 bool operator<(const node x,const node y){return x.i<y.i;}
而node有i,j两维,那么如果两个node x,y
如果x.i==y.i
这两个x,y就会被视为一个值
- 用set的时候,注意
upper_bound
和lower_bound
的使用
// auto st=upper_bound(s.begin(),s.end(),(node){L,0,0});
// auto ed=upper_bound(s.begin(),s.end(),(node){R,0,0});
auto st=s.upper_bound((node){L,0,0});
auto ed=s.upper_bound((node){R,0,0});
注释部分更劣,时间复杂度更高。见这道题的提交记录
其他
回转寿司离散化的时候,设f(x)为x离散化后结果 f(x-y)!=f(x)-f(y)
若题目中有描述“区间赋值”。那么需要注意可能区间赋值为0.如果有懒惰标记lzy,不能仅通过lazy==0
来判断要不要下传标记,应该令添加一个flag记录是否被区间覆盖过。
不要用 getchar
代替 scanf("%s",s);
更新最大值,次大值的时候(次小生成树)
不能是
pii upd(pii x,pii y){
if(x.fi!=y.fi) return {max(x.fi,y.fi),min(x.fi,y.fi)};
else return {x.fi,max(x.se,y.se)};
}
正确:
pii upd(pii x,pii y){
if(x.fi!=y.fi) return {max(x.fi,y.fi),max(min(x.fi,y.fi),max(x.se,y.se))};
else return {x.fi,max(x.se,y.se)};
}
循环推进某一个值 x,并记录下 x 的上一次的值 las。没有更新 las.
输入空格+字符 不能直接 scanf("%c",c);
各个算法板块
fhqtreap:
维护数组
split(rch(p),rch(lp),rp,s-siz(lch(p))-1);
写成了:
split(rch(p),rch(lp),rp,s-lch(p)-1);
二分图
-
寻找增广路时没有清空vis
-
第二个区域的点的编号没有+N
斜率优化
while(head<tail&&k(q[head],q[head+1])<=(ld)1.0*K(i))
写成了
while(head<tail&&k(q[head],q[head]+1)<=(ld)1.0*K(i))
是 head<tail
不是 head+1<tail
计算几何
注意两条线段端点相交的情况。
网络流
- 当前弧优化:
for(int i=cur[u];i;i=e[i].nxt){
cur[u]=i;
...
之前一直是错的!! 不是cur=e[i].nxt
!!! 有问题的代码,会导致奇怪的TLE
for(int i=cur[i];i;i=e[i].nxt)
树链剖分
ed[1]!=n
.ed[i]:i开始的链的底端的dfn
数论板块
inv[0]=1
没写,导致计算关于0的组合数有问题。
本文来自博客园,作者:bwartist,转载请注明原文链接:https://www.cnblogs.com/bwartist/p/17650181.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现