警钟敲烂
查看原帖
警钟敲烂
911545
yshs楼主2024/10/11 20:45

如果你使用的分块代码不假且测试大数据时出现不明的输出导致无法通过,请检查你的数组是否越界,

错误的数组

constexpr int N = 1e5 + 1, SQ = sqrt(N) + 1;

int n, m, a[N], t, siz, st[SQ], ed[SQ], pos[N], tag[SQ], sum[SQ];

正确的数组

constexpr int N = 1e5 + 1, SQ = sqrt(N) + 1;

int n, m, a[N], t, siz, st[SQ + 1], ed[SQ + 1], pos[N], tag[SQ + 1], sum[SQ + 1];

因为可能最后会有散块,所以大小还要多+1+1如果数组下标不是从0开始的话

2024/10/11 20:45
加载中...