我觉得是递归写假了导致爆栈,而不是数组开太多。
by Raymondzll @ 2021-09-02 17:51:36
```cpp
const int maxn=1e+5;
```
这是啥
by Fan_Tuan @ 2021-09-02 17:53:49
@[Fan_Tuan](/user/371178) 和1e5应该没区别(?
by Raymondzll @ 2021-09-02 17:55:18
```cpp
const int maxn=1e+5;
```
是我打错了,可改了后还是爆内存
by qzilr @ 2021-09-02 18:10:52
@[Raymondzll](/user/225192) 能问一下哪一个递归爆栈了吗?
by qzilr @ 2021-09-02 18:12:13
我发现了原因:\
$1.$ 我测了一下
```cpp
1e+5=1e5=100000
```
但是提交的时候,
```cpp
1e+5
```
会 $MLE$ (超过了 $125MB$ ,具体多少我也不知道),\
但是
```cpp
1e5+5
```
就能过(只花了 $22MB$ 左右)\
$2.build$ 函数中,回溯时,没有更新
```cpp
t[pos].l
```
和
```cpp
t[pos].r
```
$3.updates$ 和 $getsum$ 函数中的第一个 $if$ 的条件应该是
```cpp
d[top[x]]<d[top[y]]
```
而不是
```cpp
d[x]<d[y]
```
应该是这三个错误导致递归时爆栈,我改过之后就 $AC$ 了
by qzilr @ 2021-09-03 00:15:09
准确的说,导致 $MLE$ 的只有第一个原因,后两个导致的是 $RE$ ,可能是我在 $IDE$ 测的数据有些局限,只发现了 $MLE$,并没有发现 $RE$
by qzilr @ 2021-09-03 00:22:54
@[Raymondzll](/user/225192) @[Fan_Tuan](/user/371178) 非常感谢两位 $dalao$ 对我的问题给予解答
by qzilr @ 2021-09-03 00:25:41
凌晨调试的dalao,orz@[qz77](/user/400333)
by Raymondzll @ 2021-09-03 07:08:26