CF2171(div. 3) VP & 补题笔记

E

Statement

对于一个数组 aa ,当且仅当 gcd(ai,ai+1)=gcd(ai,ai+2)=gcd(ai+1,ai+2)=1\gcd(a_i, a_{i+1}) = \gcd(a_i, a_{i+2}) = \gcd(a_{i+1}, a_{i+2}) = 1 时, ii 为一个好索引,反之则为坏索引。给定 n2×105n \le 2 \times 10^5 ,构造排列 ana_n 使得其中坏索引数量不超过 66

Solution

将具有相同因子的数构造成 XX_XX_XX_XX... 的形状较优,将偶数与 33 的奇数倍数分别构造成这种形状可以满足题意。
submission

G

Statement

给定两个长度为 n2×105n \le 2 \times 10^5 的数组 aabb ,两种操作分别为:

  • 选择 ii 使得 ai:=ai+1a_i := a_i+1
  • 对于所有的 ii 使得 ai:=ai×2a_i := a_i \times 2

求使得 a=ba=b ,最小的操作次数\使得操作次数最小的操作序列数量( 对 106+310^6+3 )取模。

Solution

尽量多使用操作 22 显然更优,因此 操作 22 的数量唯一确定。

如果某一个操作 11 之后有 xx 个操作 22,相当于给 aa 加上 2x2^x

因此也可以唯一确定操作 11 的数量。只有若干个操作 22 之间(包括第一个操作 22 和最后一个操作 22 之后),一组操作 11 的顺序可以调换。

根据组合数学原理,对于每一组操作 11,方案数为 (p)!(pi!)\frac{(\sum{p})!}{\prod{(p_i!)}} , 其中 pip_i 为第 ii 个数的操作 11 的数量。

注意代码实现的时候, (p)!(\sum{p})! 可能会超过 mod\text{mod} ,此时答案即为 00 ,因为分子一定含有因子 mod\text{mod},而分母一定不含有因子 mod\text{mod},即 (p)!(pi!)mod(106+3)=0\frac{(\sum{p})!}{\prod{(p_i!)}} \mod (10^6+3) = 0

submission

H

Statement

给定两个整数 nnmm2nm21052\leq n\leq m \leq 2\cdot 10^5 ),最大化严格单调递增数组 ana_nΣi=2nv(i,ai)\Sigma_{i=2}^{n}v(i,a_i) 的取值,其中 v(b,x)v(b, x) 为最大的 kk 使得 bkxb^k \mid x

Solution

考虑 dp,令 dpi,jdp_{i,j}aia_i 已确定为 j+ij+i 时最大的 Σv\Sigma v ,这样 dpi,jdp_{i,j} 可以由任意 dpi,j(j<=j)dp_{i,j'}(j'<=j) 转移过来,且 Σv\Sigma v 的增加量只与 jj 有关而与 jj' 无关,故可以使用滚动数组,并用树状数组维护区间最大值。

submission