整数分块

更新日志

概念

对一个序列进行操作时,对其中某个值分块,保证能快速(通常是 \(O(1)\))解决块内问题。

常见的情况是进行模运算,将其转化成减法,按值与模数的关系分块。

思路

以取模为例,我们考虑将取模运算转化成减法运算,那么需要分块的其实是需要减去的模数个数。

其他的以此类推。

核心代码

for(int l=1,r;l<=n;l=r+1){
    r=/*计算出这一区块的右区间*/;
    /*更新答案*/
}
posted @ 2024-11-19 09:58  HarlemBlog  阅读(1)  评论(0编辑  收藏  举报