关于区间加全等序列 k 次前缀和
  • 板块学术版
  • 楼主smarthehe
  • 当前回复6
  • 已保存回复6
  • 发布时间2020/5/17 22:47
  • 上次更新2023/11/7 02:14:35
查看原帖
关于区间加全等序列 k 次前缀和
103732
smarthehe楼主2020/5/17 22:47

RT,题面如下:

给定一个长为 nn 的序列 a1,,ana_1,\cdots,a_n(初始全为 0),mm 次操作,每次给定 l,r,kl,r,k,对 [l,r][l,r] 内的每个 ii 都令 aia_i 加上 (il+kk)\binom{i-l+k}{k}。最后输出整个序列,对 109+710^9+7 取模。

n,m5×105n,m \leq 5 \times 10^50k200 \leq k \leq 20

容易发现加的这个东西实际上是序列 1,1,1,1,1,1,\cdotskk 阶前缀和的前 rl+1r-l+1 项,所以考虑建立 11kk 阶的差分数组,转换为单点修改。

那么关键在于如何在高阶差分数组中将修改限制在区间内。我手推了一个 k=3 的情况:

0,1,3,6,10,15,0,0,0 (Δ0) 0,1,3,6,10,15,0,0,0 \ (\Delta^0)

0,1,2,3,4,5,15,0,0 (Δ1)0,1,2,3,4,5,-15,0,0 \ (\Delta^1)

0,1,1,1,1,1,20,15,0 (Δ2) 0,1,1,1,1,1,-20,15,0 \ (\Delta^2)

0,1,0,0,0,0,21,35,15(Δ3) 0,1,0,0,0,0,-21,35,-15 (\Delta^3)

然后把后面的补项列出来:

Crl+kk-C_{r-l+k}^k

Crl+kkCrl+k1k1,Crl+kk-C_{r-l+k}^k-C_{r-l+k-1}^{k-1},C_{r-l+k}^k

Crl+kkCrl+k1k1Crl+k2k2,2Crl+kk+Crl+k1k1,Crl+kk-C_{r-l+k}^k - C_{r-l+k-1}^{k-1} - C_{r-l+k-2}^{k-2},2C_{r-l+k}^k + C_{r-l+k-1}^{k-1} ,-C_{r-l+k}^k

抽象一下,后续大概是这样:

(1,1,1,1),(3,2,1),(3,1),(1)(-1,-1,-1,-1),(3,2,1),(-3,-1),(1)

(1,1,1,1,1),(4,3,2,1),(6,3,1),(4,1),(1)(-1,-1,-1,-1,-1),(4,3,2,1),(-6,-3,-1),(4,1),(-1)

(1,1,1,1,1,1),(5,4,3,2,1),(10,6,3,1),(10,4,1),(5,1),(1)(-1,-1,-1,-1,-1,-1),(5,4,3,2,1),(-10,-6,-3,-1),(10,4,1),(-5,-1),(1)

到这里我会 O(nk2)O(nk^2) 了,请问大佬怎么砍掉一个 kk……

2020/5/17 22:47
加载中...