我在 room 里面看到这么一个代码(完整的放二楼)
bool dfs(long long x) {
auto it = s.find(x);
if (it != s.end()) {
s.erase(it);
return true;
}
if (x <= 1) return false;
long long p = (x + 1) / 2, q = x / 2;
return dfs(p) && dfs(q);
}
我认为这个做法当答案为 no 时应该是 O(∑iai) 的,然后构造了一个 2e5 个 1e9 在本地发现是跑不出来的,然后就提交hack,CF提示不能提交超过256kb的文件,然后我又改小了一点,本地还是跑不出来,提交以后 unsuccessful hack。
我认为这个代码是可以被卡 TLE 的,但是 CF 上就是卡不成功,而且就连后来的 successful hack 也是可以过的,为什么?