题面:http://acm.hdu.edu.cn/showproblem.php?pid=1166
HDU1166-敌兵布阵
题意
解法
给出数状数组和分块的解法。
数状数组不多讲了。就套个模板。
BIT例程
1 |
|
简单说明下分块,分块就是将整段的区间分成若干块,对区间进行一系列的操作。
最后要进行查询的时候整块的区间就查询整块,剩下的部分的就暴力操作。
常规处理分成$sqrt(n)$块,可以达到$O(sqrt(n))$的时间复杂度
对于本题而言,首先将区间分块,区间内的和单独记录,最后求和的时候整块的区间直接加和,区间外的单独加即可。
分块例程
1 |
|
线段树
1 |
|