本题已经 AC,但本人在做此题时曾玄学地 TLE 过,至今仍不解
AC 记录 TLE 记录
代码的主要区别在于:
using pll = std::pair<int64_t, int64_t>;
int64_t dp()
{
pll queue[MaxV << 1], *head = queue, *tail = queue;
}
在 TLE 的代码中,queue 这个超级大数组是被开在函数里面,开在栈空间里的。
在 AC 的代码中,它被开在全局变量里。
dp() 这个函数被调用了多次,然后就玄学地 TLE 了。
本人非常不解,不知道为什么 TLE,在栈中分配内存应当是 O(1) 的吧(移动 RSP 指针),为何会导致 TLE,求教广大洛谷网友。