社区讨论
进士候人啊啊啊啊啊啊啊啊如果你莫名其妙TLE
P10264[GESP202403 八级] 接竹竿参与者 4已保存回复 7
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 7 条
- 当前快照
- 1 份
- 快照标识符
- @mjfa61aw
- 此快照首次捕获于
- 2025/12/21 13:22 2 个月前
- 此快照最后确认于
- 2025/12/23 20:10 2 个月前
如果你被莫名其妙的TLE问题困扰
那么你有可能是read()函数默写错了
至少我是这个问题
CPPinline int read()
{
int x=0,f=1;char ch=getchar();
while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();}
while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
好的别急着走
如果你不是这个问题
我有检测你是哪里出了问题的办法
就是你在你的程序中加上一句:
if(t==4)cout<<1/0;
原理就是如果这句话被执行了,那么你的TLE会变成RE
然后你就可以多次改变这句话的位置,来确定哪行代码出了问题
我就是把这句话放在int q=read();这句话前面就全部RE,后面就全部TLE
于是检查出了我是read()的问题
这个方法我已经用过好多回了,确实好用
还有一个方法就是如果你莫名其妙WA了
(不针对本题)
你可以在某句话上下加上cout一个比较奇怪的字符
比如答案让你输出数字,你输出个字母
然后写一些if else在不同状态下输出不同字母
就可以通过luogu的报错信息检查出你是哪里的问题
(再次拜谢luogu的测评机)
这是我的所有方法了,如果还没用,还是自己想想吧(欢迎各位orz把您的方法分享给我,%%)
回复
共 7 条回复,欢迎继续交流。
正在加载回复...