专栏文章

ARC124E 题解

AT_arc124_e题解参与者 2已保存评论 1

文章操作

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

当前评论
1 条
当前快照
1 份
快照标识符
@mipd6egn
此快照首次捕获于
2025/12/03 10:04
3 个月前
此快照最后确认于
2025/12/03 10:04
3 个月前
查看原文
看到 \sum \prod 状物直接想组合意义。具体地,我们计算在操作之后,从每个人手中挑出一个球的方案数。
考虑令 fi,0/1f_{i,0/1}ii 手中的球为原本有的,计算 ii 从中选出一个球/上一个人给球, 有多少种方案从 i1i-1 手里拿球的方案数。二者均不考虑 ii 传几个给 i+1i+1。转移分以下几类:
j=1nj2\sum \limits_{j=1}^{n} j^2S2(n)S_2(n)j=1nj\sum \limits_{j=1}^n jS1(n)S_1(n)
fi,0fi1,0S1(ai1)+fi1,1(ai1+1)f_{i,0} \leftarrow f_{i-1,0} S_1(a_{i-1})+f_{i-1,1}(a_{i-1}+1)
对于 fi1,0f_{i-1,0},额外结算其给 ii 的方案数以及自己拿的方案数,则为 i=0ai1(ai1i)\sum \limits_{i=0}^{a_{i-1}}(a_{i-1}-i)。对于 fi1,1f_{i-1,1} 则给球的方案数有给 00 个到 ai1a_{i-1} 个共 ai1+1a_{i-1}+1 种方案。
fi,1fi1,0(ai1S1(ai1)S2(ai1))+fi1,1S1(ai1)f_{i,1} \leftarrow f_{i-1,0}(a_{i-1}S_1(a_{i-1})-S_2(a_{i-1}))+f_{i-1,1}S_1(a_{i-1})
对于 fi1,0f_{i-1,0},首先计算给 ii 多少个,然后分别算 i1i-1 的选择方案数以及 ii 的选择方案数,为 i=0ai1(ai1i)i\sum \limits_{i=0}^{a_{i-1}} (a_{i-1}-i)i。对于 fi1,1f_{i-1,1},直接枚举给多少个,计算 ii 的选择方案数,为 i=1ai1i\sum \limits_{i=1}^{a_{i-1}} i
枚举 11 的来源,则边界条件为 f1,0=1,f1,1=0f_{1,0}=1,f_{1,1}=0f1,1=1,f1,0=0f_{1,1}=1,f_{1,0}=0。最后再额外处理一个 fn+1f_{n+1} 返回即可。
但是这玩意是不对的。记 ii 给出去的球的个数为 cic_i,则其认为的方案本质不同当且仅当给出去的个数不同。该怎么办呢?
断言:minci=0\min c_i =0 的方案与最终的 bb 序列一一对应。
证明:显然一种 cc 序列唯一对应一种 bb 序列。当 bb 序列给定时,其就相当于 ci1ci=Δbic_{i-1}-c_i=\Delta b_i。所以差分数组给定,唯一的差别就是基准元的值。钦定最小的数为 00 即可对应。
考虑容斥,即把无限制的减去 min1\min \ge 1 即可。
时间复杂度 O(n)O(n)

评论

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

正在加载评论...