P3863 - 序列 - 总结
P3863 - 序列
如果 \(n = 1\),也就是只有一个数的情况下,可以列出时间轴,要求实现后缀加,前缀查询大于 \(x\) 的个数,使用分块即可。
当 \(n \neq 1\) 时,也列出所有数的时间轴,那么就转变为了矩阵加,某一序列的前缀查询大于 \(x\) 的个数。
这时可以应用扫描线的思想,以序列为横轴,从 \(a_1\) 扫到 \(a_n\),维护目前的时间轴(即纵轴),这样就可以拆解矩阵加,同时分块维护查询了。
复杂度 \(\Omicron(n+q\sqrt q\log q)\) 和 \(n = 1\) 时复杂度一样,因为修改和查询的总量 \(q\) 不变。