分块算法入门
所谓分块算法,就是讲一个序列分成若干块,维护块内的信息。为了保证一定的时间复杂度,所以对于一个 n n 个元素组成的数组,将其分为 块,每块也有 n−−√ n 个元素。所以一般分块算法的复杂中都带有根号。
对于一个暴力的区间修改问题,方法自然是对于区间的每一个元素都暴力修改,这样的话时间复杂度是明显不够优秀的。所以引入了分块的算法,分块相当于一种优雅的暴力。
如何写分块(一)
维护内容
在分块中,我们需要维护的基本内容有:总的元素个数 n n ,每一块的个数 ,块的总数目 num n u m ,这块左端点的位置