专栏文章

题解:P14381 【MX-S9-T4】「LAOI-16」顽疾

P14381题解参与者 8已保存评论 8

文章操作

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

当前评论
8 条
当前快照
1 份
快照标识符
@mineswb4
此快照首次捕获于
2025/12/02 01:14
3 个月前
此快照最后确认于
2025/12/02 01:14
3 个月前
查看原文
出题人题解。

题目大意

定义 f(a)f(a) 为有多少个长为 nn 排列 pp 满足 i[1,n),api×api+1w\forall i\in[1,n),a_{p_i}\times a_{p_{i+1}}\le w
定义 g(a)g(a)i=1n1(ai+1ai+1)t\prod_{i=1}^{n-1} (a_{i+1}-a_i+1)^t
aAf(a)×g(a)\sum_{a\in A} f(a)\times g(a),其中,AA 为所有长度为 nn,值域在 [1,k][1,k] 中且满足 i[1,n1],aiai+1\forall i\in[1,n-1],a_i\le a_{i+1} 的所有序列组成的集合。

30pts

首先,考虑如何快速计算一个数列 aaf(a)f(a)。我们可以定义一个最终的答案序列。然后,钦定一个选择顺序,每次选取一个 f(a)f(a) 中的数,将其插入到答案序列中。如果我们保证了每次插入后该数与相邻两项的乘积都小于等于 ww,或者不合法的连续二元组之后会被分开,那么该序列就是合法的。
考虑我们从两边往中间放,对于现在要放的数 al,ara_l,a_r
如果 al×arwa_l\times a_r\le w,则有 i[l+1,r],al×aiw\forall i\in[l+1,r],a_l\times a_i\le w,称其为 AA 类点。放入后 l++
如果 al×arwa_l\times a_r\ge w,则有 i[l,r1],ai×arw\forall i\in[l,r-1],a_i\times a_r\ge w,称其为 BB 类点。放入后 r--
所以对于放入过程,我们可以记录一个数 cntcnt 表示当前可以放入数的位置个数。
当放入一个 AA 类点时,有 cntcnt 种放入方法,之后 cnt++
当放入一个 BB 类点时,有 cntcnt 种放入方法,之后 cnt--
显然,如果存在一时刻满足 cnt=0,那么就无解。
考虑此题,可以 dpdp 求解,设 dpi,j,l,rdp_{i,j,l,r} 表示当前已经放入了 ii 个数,上述的 cnt=jcnt=j,且两侧还没放的点的值分别为 l,rl,r 时的答案,则转移时考虑枚举下一个放入的数 xx,然后根据 jj 进行转移。
时间复杂度 O(n2k3)O(n^2k^3)

60pts

考虑一个拆分幂次的办法,xtx^t 相当于有多少种方案是将 tt 个互不相同的小球放入 xx 个盒子中。
对于上述转移,可以用上述办法做到 O(n2k2t2)O(n^2k^2t^2)

100pts

注意到对于任意的两个数列 a,ba,b,如果在数列 aa 中存在两个值 v1,v2v1,v2 满足 v1v1 先被插入到答案序列,则在 bb 中如果也存在 v1,v2v1,v2,则 v1v1 也会先被插入到答案序列中。

证明

考虑反证法,如果 v1v1aa 中先被插入,但在 bbv2v2 先插入,则 v1,v2v1,v2 必然作为不同类别(一个时 AA 类,一个是 BB 类)被考虑。
v1v1 作为 AA 类点,则有 v1×xwv1\times x\le w,其中 xv2x\ge v2。而又有 v2×y>wv2\times y> w,其中 yv1y\le v1。显然矛盾。
v1v1 作为 BB 类点时,同理。
所以,可以预处理出一个全局的放入顺序。
之后,设 dpi,j,k,l,rdp_{i,j,k,l,r} 表示已经考虑了钦定顺序的前 ii 个数,当前已经放了 jj 个数,可以放数的位置数为 kk。而 l,rl,r 为拆幂次优化转移时需要的两边放入的球的个数。转移时枚举放几个球。
时间复杂度为 O(n2kt3)O(n^2kt^3)
还有 O(n2kt2)O(n^2kt^2) 做法等验题人或是其他选手来解答了 ,给你们精通数数的跪了

评论

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

正在加载评论...