调试日记

发布时间 2023-12-13 21:32:09作者: DengStar

调试日记

  1. 2023/12/13 21:15

题目:P3469 & SP15577(两道题题意完全相同)

表现:读入大样例时 RE。用之前 AC 的代码测大样例,仍然 RE。

分析:发现 RE 的原因是栈空间太小。NOI 规定的栈空间为 512 MB(待查),而 Dev C++ 默认的栈空间较小。这道题用到了 dfs,递归层数较多,导致 RE。

解决方案:加入编译指令 -Wl,--stack=512000000,将栈空间设成(大约) 512MB,重测时不再 RE。

反思:调试时出现了代码在 OJ 上 AC,在本地出问题的情况。此时应考虑编译环境是否配置得当。另外,本次 RE 的返回值为 3221225725,上网查询可知此返回值代表递归爆栈空间。因此最好对常见的 RE 返回值比较熟悉。

附:适合 NOI 系列比赛的编译选项(可能待完善):-std=c++14 -Wall -Wextra -Wl,--stack=512000000