题解:[NWRRC 2021] First to Solve
根据期望线性性,可以转化为求第 \(i\) 个人获得第 \(x\) 题首杀的概率,进一步转化为第 \(i\) 个人在时间 \(t\) 获得 \(x\) 题首杀的概率。设第 \(i\) 个人能解决 \(c_i\) 题(即 \(c_i\) 个 \(a_{i,j}\) 非零),则总方案数是 \(\prod c_i!\),所以所有概率可以转化为求方案数。
第 \(i\) 个人在时间 \(t\) 获得 \(x\) 题首杀,即要求第 \(i\) 个人在时间 \(t\) 通过 \(x\) 题,且其余人 在 \(\ge t\) 通过 \(x\)。\(\ge t\) 的时间可以是 \(\mathcal O(mk)\) ,所以考虑转化为求每个人在 \(< t\) 的时间内通过 \(x\) 题的方案数。
枚举 \(x\),只需要求出所有第 \(i\) 个人在时间 \(t(0<t\le k)\) 解决第 \(x\) 题的方案数,然后通过一些前缀和即可算出答案。
直接做背包复杂度太高,考虑回退背包。先求出 \(f_{i,j,t}\) 表示第 \(i\) 个人,解决了 \(j\) 个题,总用时为 \(t\),选出这 \(j\) 个题的方案数。那么对于每个 \(x\),设 \(g_{i,j,t}\) 表示第 \(i\) 个人,解决了 \(j\) 个题,总用时为 \(t\),且不包含第 \(x\) 题,选出这 \(j\) 个题的方案数,则可以得到 \(g_{i,j,t}=f_{i,j,t}-g_{i,j-1,t-a_{i,x}}\)。枚举第 \(i\) 个人完成第 \(x\) 题时共完成了几题,可以得到第 \(i\) 个人在时间 \(t\) 解决第 \(x\) 题的方案数为:
预处理背包和后面计算答案复杂度均为 \(\mathcal O(nm^2k)\)。

浙公网安备 33010602011771号