想必你一定会用线段树维护等差数列吧?让我们来看看它的升级版, 请你维护一个长度为5×1055 times 10 ^55×105的数组,一开始数组中每个元素都为0,要求支持以下两个操作: 1、区间[l,r]加自然数的平方数组,即al+=1,al+1+=4,al+2+=9,al+3+=16...ar+={a_l+=1,a_{l+1}+=4,a_{l+2}+=9,a_{l+3}+=16...a_{r}+=*}al+=1,al+1+=4,al+2+=9,al+3+=16...ar+= 2、区间[l,r]查询区间和mod 109+710^9 + 7109+7
想必你一定会用线段树维护等差数列吧?让我们来看看它的升级版。 请你维护一个长度为5×1055 times 10 ^55×105的数组,一开始数组中每个元素都为0,要求支持以下两个操作: 1、区间[l,r]加自然数的平方数组,即al+=1,al+1+=4,al+2+=9,al+3+=16...ar+=(r−l+1)∗(r−l+1){a_l+=1,a_{l+1}+=4,a_{l+2}+=9,a_{l+3}+=16...a_{r}+=(r-l+1)*(r-l+1)}al+=1,al+1+=4,al+2+=9,al+3+=16...ar+=(r−l+1)∗(r−l+1) 2、区间[l,r]查询区间和mod 109+710^9 + 7109+7
(图片来源网络,侵删)