快捷键

切换暗色模式 CtrlD
搜索 CtrlK
关闭弹窗 Esc
返回顶部 Ctrl
快捷键面板 Ctrl/
C++信息学奥赛打字闯关
首页 闯关训练 段位系统 题库中心
技术博客 新闻资讯
排行榜 信奥社区 成就殿堂 在线留言 AI助手
📑 文章目录

竞赛编程中的常见错误与调试技巧大全

❤️ 1350 点赞
💬 0 评论
👁️ 39815 阅读
🔄 更新于 2026-09-11 05:13

总结了竞赛中常见的错误类型和高效的调试方法,帮你少踩坑。

一、常见编译/运行错误

  1. int main() 写成 void main() — 编译错误

  2. 忘记 #include — 编译错误

  3. 数组开小了 — 运行时 RE(段错误)

  4. 递归太深没开栈 — 段错误

  5. 除以 0 — RE


二、常见逻辑错误
  1. 变量未初始化(局部变量在竞赛环境中初始值不确定)

  2. 循环边界写错(i <= n 写成 i < n)

  3. 数据类型溢出(int 存不下要用 long long)

  4. 运算符优先级(& ^ | 优先级低于 == !=)

  5. 多测不清空(数据结构和全局变量清空)

  6. 记忆化搜索未判 vis


三、调试技巧
  1. 输出调试

cerr << "debug: " << x << endl; // 输出到 stderr

  1. assert 断言

assert(1 <= x && x <= n); // 条件不满足时程序崩溃

  1. 对拍(最重要!)

写一个暴力程序和一个随机数据生成器,用脚本循环测试。

  1. 小数据测试

缩小数据范围,人工验证输出。

四、考试 Checklist
  • [ ] freopen 写对了吗?

  • [ ] 文件名大小写对吗?

  • [ ] 数组大小够吗(是否超过内存限制)?

  • [ ] 要不要开 long long?

  • [ ] 读入输出够快吗?

  • [ ] 测试样例通过了吗?

  • [ ] 多组数据清空了吗?


五、常见"玄学错误"
  1. 快读不能和 scanf/cin 混用

  2. #define int long long 可能 MLE

  3. memset 只能赋值 0 或 -1(按字节赋值)

  4. 浮点数不能用 == 比较

💬 评论 (0)

暂无评论,快来抢沙发吧~ 🛋️

在线

给管理员留言

每条留言老师都会认真阅读并回复

📚 课程咨询 🔧 技术求助 💡 建议反馈 🤝 合作联系

留言发送成功!

您的留言已送达管理员后台

追踪码(请保存以便查询回复)
------