专栏文章
题解:P12525 [Aboi Round 1] 私は雨
P12525题解参与者 9已保存评论 9
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @mip2gh9f
- 此快照首次捕获于
- 2025/12/03 05:04 3 个月前
- 此快照最后确认于
- 2025/12/03 05:04 3 个月前
这……这种问题,我当然知道,我……我可不是要说给你听的,我只是觉得你不知道的话太可怜了……对,就是这样……所以给我认认真真的记住!
考虑对 根号分治, 的直接拿一个 vector 存一下,暴力二分就可以了。
对于 的部分,序列分块预处理每一个块对 取模之后 的答案,时间是 询问也是二分即可。
注意我们可以加入一个剪枝:如果暴力枚举的 的合法个数是在一个数以内的(我的代码里面是 ,经测试这是很合理的),那么久直接用 的跑。
这里给出一点我的参数建议,可以稳过,不需要靠波动:
CPPcin >> N >> opt;
L (i, 1, N) cin >> A[i], chmax(V, A[i]),
pos[A[i]].push_back(i);
L (i, 1, V) sort (pos[i].begin(), pos[i].end());
const int B = sqrt(N) * 6.4;
L (i, 1, N) {
bl[i] = (i - 1 + B) / B;
if (!lpos[bl[i]]) lpos[bl[i]] = i;
chmax (rpos[bl[i]], i);
}
const int VB = 100;
L (i, 1, N) {
int blt = bl[i];
L (v, 1, VB) g[blt][v][A[i] % v].push_back(A[i]);
}
跑的比大部分 题解快。
相关推荐
评论
共 9 条评论,欢迎与作者交流。
正在加载评论...