社区讨论

进士候人啊啊啊啊啊啊啊啊如果你莫名其妙TLE

P10264[GESP202403 八级] 接竹竿参与者 4已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mjfa61aw
此快照首次捕获于
2025/12/21 13:22
2 个月前
此快照最后确认于
2025/12/23 20:10
2 个月前
查看原帖
如果你被莫名其妙的TLE问题困扰
那么你有可能是read()函数默写错了
至少我是这个问题
CPP
inline 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 条回复,欢迎继续交流。

正在加载回复...