传送门 考虑直接推式子不用优化怎么做。 显然每一个二进制位分开计算贡献就行。 即记录
f
i
,
j
f_{i,j}
fi,j表示距离
i
i
i这个点不超过
j
j
j的点的每个二进制位的
0
/
1
0/1
0/1个数。 但直接存是会爆炸的。 考虑到每个数只会被用一次,所以可以考虑主席树那种复用信息的思想来继承长链后代的信息,然后短链直接暴力统计贡献就行。 由于
l
d
x
ldx
ldx蒟蒻是口胡选手只会暴力写法,因此正解差不多是照着标程写的233. 细节较多,用指针维护比较自然一些。 代码