// 此文过水,只是给自己复习的,不建议阅读
关于标记的用法
例如,在动态维护区间和的时候(虽然很多时候用线段树或者树状数组更方便),假如每块有3个属性:。与标记了它的左端点和右端点,但有两种用法:
1.在查询整体和的时候使用。(李煜东的书给出的就是这种)
当要使第块每个元素都增加时,执行,然后逐一更新该块中每一项的值 ,使其增加。//与
当要查询时,如果查询该块的某部分,则逐一累加那一部分的元素然后返回;如果查询整体的和,就直接返回原始处理的加上。//与
2.查询部分元素的时候使用。
当要使第块每个元素都增加时,执行,然后把加上;//与
当要查询时,如果查询该块的某部分,则逐一累加那一部分,然后加上;如果查询整体的和,直接返回;//与
第二种方法可以在修改的时候省掉一个。
关于每块元素的个数
方法不同的话,长度为的数列每一块的元素个数不一定是,也不一定小于它。可能大于它。
例如,如果以李煜东书上的分块方法,给个元素的数列分块,每一块的元素个数分别为:。(就因为这个原因一道题卡了很久。不过他这种方法应该是错的吧…)