本题复杂度这样证明可以吗
查看原帖
本题复杂度这样证明可以吗
38636
寒冰大大楼主2022/10/27 23:22

初学OI两周的萌新求助

先考虑一个简单版本,只插入和询问

显然,对于同一个 kk ,每次答案单调不下降,因此只需要记录 kk 上一次的答案,这次从上开始查找即可

考虑复杂度的正确性,假设我们有 1,2,3,...,n1,2,3,...,n 这个数列,如果想让他们移动次数最多,就需要 1,2,3,4,5..n1,2,3,4,5..n 这样插入,复杂度即为调和级数,~~~三江方士证明它收敛~~ ,即为 O(nlogn)O(n\log n)

那么如果有删除呢,我们只需要考虑当当前这个数字曾经对那些没有产生贡献,显然根据上面的结论,它的因子个数(产生过影响的)也是 O(logn)O(\log n) 级别的,因此依旧大力维护即可。

复杂度即为 O(nlog2n)O(n\log^2n)

2022/10/27 23:22
加载中...