T1: 对两边同取对数就完了 T2: 差分后会发现,其实就是将数字左右移动,且每次只能移动k步 那就简单了,模k同余的数一定可以移到一起,不同余的一定不行,所以开个k的桶统计一下就行了 T3: 对于每个节点求贡献 可以对于每个节点统计子树内节点在序列上的分布情况 具体来说可以用线段树来解决,统计哪个位置已经出现,同时统计连续子段个数 那么每个节点的贡献即为((cnt_u-sum_{v o son_u}cnt_v)*val_u)