Debug技巧与常见代码实现问题合集

常见代码实现问题

  1. 对于右移运算,主要要使用1ll<<n而不是1<<n. 防止溢

  2. \(n,m\)不要写反

  3. 数组开小了

  4. 复制的相似代码该改的内容没有改,例如函数的调用

  5. 空if

  6. 过早的break;和continue;导致部分本执行的语句被跳过

  7. 局部变量初始值

  8. 递归过程中不同深度的内容互相污染

  9. 忘记调用函数了

  10. 取模的时候加p模p

  11. 取模取少了

  12. 状态转移缺少或者重复

  13. 数组平移后填充内容有误

  14. 依赖状态的初始化函数调用顺序错误

  15. 比较器写反了

矩阵

  1. 没有初始化为单位矩阵

  2. 矩阵没有清零

  3. 自己矩阵,other矩阵,返回结果矩阵写混

图论

  1. 分清正图反图

调试技巧

极端数据

形式极端数据

对\(n,m\)这样的数取最小值测试

逻辑极端数据

  • 我们对区间进行操作,那么我们要测试\([x,y],[x,n],[1,y],[1,n]\)的所有可能

调试顺序

  1. 检查初始化内容

  2. 检查多测

  3. 检查\(n,m\)循环范围是否写反

  4. 检查数组调用是否正确

  5. 检查函数下标变量是否正确

  6. 检查if 条件是否正确

  7. 检查while 条件是否正确

  8. 检查for 条件是否正确

  9. 检查数组范围

  10. 检查取模运算

  11. 检查边界是否带等号

  12. 检查线段树push_down

  13. 检查线段树push_up

posted @ 2026-10-22 20:54  txp2025  阅读(5)  评论(0)    收藏  举报