社区讨论

警示后人

P13977数列分块入门 2参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mjwpt4bf
此快照首次捕获于
2026/01/02 18:12
2 个月前
此快照最后确认于
2026/01/05 17:10
上个月
查看原帖
临时数组拷贝原数组的时候需要拷贝一整个块,而不是只拷贝修改的部分。因为临时数组是排序过的,并不对应原数组下标。
例如,错误示范:
CPP
for(int i = l; i <= r; ++i) b[i] = (a[i] += c);
正确示范:
CPP
for(int i = l; i <= r; ++i) a[i] += c;
for(int i = bL(sid); i <= bR(sid); ++i) b[i] = a[i];
当然你也可以用 memcpy 拷贝,主要是要一次性拷贝整个块。

回复

0 条回复,欢迎继续交流。

正在加载回复...