专栏文章

题解:P3352 [ZJOI2016] 线段树

P3352题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minpxy28
此快照首次捕获于
2025/12/02 06:26
3 个月前
此快照最后确认于
2025/12/02 06:26
3 个月前
查看原文
我从来不相信注定 不能只是做个手下败兵
考虑 0/1 怎么做,一次操作相当于区间变成按位或的结果。我们计数一个位置为 0 的方案数,考虑一个位置之和跟其左边和右边的第一个 1 有关,更具体的,我们可以把 0 连续段放在一起做。
fi,l,rf_{i,l,r} 表示做了 ii 次操作,连续段 [l,r][l,r] 的方案数。转移有:
fi,l,r=fi1,l,r×l(l1)+(nr+1)(nr)+(rl+2)(rl+1)2+j=1l1fi1,j,r×(j1)+j=r+1nfi1,l,j×(nj).f_{i,l,r}=f_{i-1,l,r}\times\frac{l(l-1)+(n-r+1)(n-r)+(r-l+2)(r-l+1)}{2}+\sum_{j=1}^{l-1} f_{i-1,j,r}\times (j-1)+\sum_{j=r+1}^{n} f_{i-1,l,j}\times(n-j).
后面两项可以前缀和优化,时间复杂度 O(n2mV)O(n^2mV),其中 VV 是值域。
由于对于每个值统计答案和转移方式一模一样,可以把这 VV 次 dp 放在一起转移,时间复杂度 O(n2m)O(n^2m)

评论

0 条评论,欢迎与作者交流。

正在加载评论...