这题虽然原 idea 是我的,但是 noname 改了之后我就一直咕咕咕没做了。
今天闲得发慌来练手速……
写完这题的第一感觉是可以回去把「『SDOI2011』颜色」的坑给填了(虽然我还是没打算写
其实做法比较显然,先考虑在序列上的做法,线段树维护区间后缀积之和和区间积,那么合并左右子树的时候,根据乘法分配律可得:
r∑i=lr∏j=iaj=r∏i=m+1ai(m∑i=lm∏j=iaj)+r∑i=m+1r∏j=iaj(m∈[l,r))
于是就显然。
考虑把这个做法放到树上,但是这个时候我们发现如果把路径从 LCA 划分成两段的话,有一段需要用与答案相反前缀积之和来统计,于是改一改线段树就好了。
关于此题树剖做法的码量瓶颈,我认为应该在于查询的过程……
必须保证思路清晰才能不写错。
然后是取模的问题,虽然模数很小但是也印证了那句话:
不开 long long 见祖宗,十年 OI 一场空。
代码:
1 |
|