易错点/易炸区

  • !a a==0 , a a!=0

  • memset 只能对数组的一维赋值

  • sort 函数默认升序排列,即 x<y

  • INF 设到足够大,但也别大到 0x7fffffff

  • 记得时刻取模,有减法时记得先 +mod%mod ,如果有必要需要读入后立即取模

  • 不要盲目取模,尤其是计算过程中胡乱取模会影响正确性,算完后最后结果可以取模

  • 注意模数性质,是否为质数,数清楚有多少位,不要想当然

  • 在需要取模的快速幂中,如果最后的结果为 0 记得加上一个 mod,否则会出错

  • 重载运算符时要注意,this.a<t.a 才是从小到大

  • 指数不能直接取模

  • 树剖时记得分清楚第 i 个原数权值(w),和按dfn顺序的权值(nw

  • 线段树updatepushuppushdown时,不能仅更新 sum,应该更新全部信息,如min、max

  • 在 splay 的标记下传过程中,一定要先判断左右儿子是否存在,再对其翻转标记xor 1

  • Floyd算法枚举顺序: k,i,j

  • 线段树开 4 倍空间

  • 线段树pushdown时记得特判是否为叶子

  • DFS 是树根的父亲尽量不要设成 1,因为 faroot 可能会在 LCA 中用到导致 RE

  • 树状数组记得特判 0 的情况

  • 分块时,最后块后面还要加一个右端点为 n+1 的块

  • n,m 的范围不代表数据范围

  • 不要随便用 SPFA,看清题目要求,是否有负边权,是否是双向边,是否稠密或稀疏

  • 存图时记得初始化 memset(h,-1,sizeof(h))

  • 尽量不用unordered_map,易被卡 ywy_c_asm的故事

  • 矩阵乘法循环顺序: i,k,j 或者 k,i,j

  • 命名时避开 y2 等系统关键字

  • 考试的时候看清编译语言是 c++ 还是 c++11

  • int 类型的函数要有返回值

  • 不要访问负下标

  • 编译选项开-Wall有助于避免 UB

  • 在遇到和逆元有关的题目时(比如求概率或期望),可以写一份转成 double 的副本,可以提高调试效率

  • 写了 init 就要初始化,别忘了用

  • 模数为 0 或者除数为 0 都可能导致 RE

  • 考试开始时先看完所有题,先做可做的,做题策略要正确

posted @   BFNewdawn  阅读(47)  评论(0编辑  收藏  举报
编辑推荐:
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
· 探秘 MySQL 索引底层原理,解锁数据库优化的关键密码(下)
· 大模型 Token 究竟是啥:图解大模型Token
阅读排行:
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 短信接口被刷爆:我用Nginx临时止血
· 面试官:如果某个业务量突然提升100倍QPS你会怎么做?
· .NET 平台上的开源模型训练与推理进展
· 聊聊智商税:AI知识库
点击右上角即可分享
微信分享提示