复杂度不对吧......
by t162 @ 2020-03-18 17:15:44
你应该写假了,对整块操作不用再便利每一个点了,直接块上做就行 @[dico](/user/178515)
by Lice @ 2020-03-18 17:26:22
@[_Wallace_](/user/61430) (可能没说清楚),我的意思是为什么 WA 了。
by dico @ 2020-03-18 17:58:36
@[dico](/user/178515) 。。。说实话这错的好像真有点多 QAQ
如果初学分块,建议用这种写法:
```cpp
function solve(a,b,...)
{
if(b所属块编号 - a所属块编号 <= 1)/*即没有整块的*/
{/*暴力计算,结束*/}
/*那么现在就是有整块的情况了*/
for(i:[a,a所属块的右边界])
/*暴力处理*/
for(i:[b所属块的左边界,b])
/*暴力处理*/
for(i:[a所属块编号+1,b所属块编号-1])
/*直接在块上做*/
}
```
by Lice @ 2020-03-18 18:29:13
tools
```cpp
/*B:=块长*/
#define lb(x) ((x-1)*B+1) //左边界
#define ub(x) (min(x*B,n))//右边界
#define bl(x) ((x-1)/B+1) //所属块
```
by Lice @ 2020-03-18 18:30:05