警示
查看原帖
警示
1126476
KraHere楼主2023/10/31 09:52

发现这几天很多出现这种情况的:洛谷和其他 OJ 上这题有分,但是 CCF 给零分。

出现这种情况的代码都有一个共同点:开了大小为 1e9 的 bool 数组。

大小为 1e9 的 bool 数组内存接近 1G 了,当然会 MLE。那么为什么洛谷上有分呢?

各位有没有发现在洛谷上交题时,即使没有动态申请空间,但各测试点反馈的空间使用仍然不同。

这是因为洛谷的评测机是以实际使用的内存来计算空间的。因此即使空间开得很大,只要空间使用没有超限,就不会 MLE。

而 CCF 的评测机是以申请的内存来计算空间的。因此只要空间申请超限,就会 MLE。

这就是为什么有些代码在洛谷上有 90 分,而 CCF 上爆零。

事实上,日常做题时不应该只计算时间复杂度,关注空间的占用也是一个好习惯,因为你不知道评测机是怎样计算空间的。

具体地,各位可以用如下代码粗略地计算空间:

cout<<sizeof(数组名)/1024/1024;

单位:M。

2023/10/31 09:52
加载中...