智乃在学习了前缀和以后,学会了先进行若干次区间加数操作,然后进行若干次查询,每次查一段[l,r]{[l,r]}[l,r]的区间和, 现在有一个长度大小为N{N}N的数组,数组中有一些非负整数,请你完成区间加若干次多项式的操作,最后进行若干次区间查询和的操作, 具体来讲,接下来会进行M{M}M次修改操作,每次将会给你一个k{k}k次多项式f(x)=c0xk+c1xk1+..
智乃在学习了前缀和以后,学会了先进行若干次区间加数操作,然后进行若干次查询,每次查一段[l,r]{[l,r]}[l,r]的区间和。 现在有一个长度大小为N{N}N的数组,数组中有一些非负整数,请你完成区间加若干次多项式的操作,最后进行若干次区间查询和的操作。 具体来讲,接下来会进行M{M}M次修改操作,每次将会给你一个k{k}k次多项式f(x)=c0xk+c1xk−1+...+ck−1x1+ck{f(x)=c_0x^k+c_1x^{k-1}+...+c_{k-1}x^1+c_{k}}f(x)=c0xk+c1xk−1+...+ck−1x1+ck,以及一段需要操作的目标数组区间[l,r]{[l,r]}[l,r]。 然后你需要对al+f(1),al+1+f(2)...a_l+f(1),a_{l+1}+f(2)...al+f(1),al+1+f(2)...以此类推,也就是对目标区间的第一个数字加上一个f(1){f(1)}f(1),第二个数字加上f(2){f(2)}f(2)... 在做完这些操作以后,还会进行Q{Q}Q次查询操作,每次查询一段[l,r]{[l,r]}[l,r]的区间元素和,因为这个数字可能很大,你只用输出其对109+7{10^9+7}109+7取余数后的结果即可。