ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[2022牛客多校赛第四场] C-Easy Counting Problem

2022-07-31 18:00:08  阅读:191  来源: 互联网

标签:第四场 2022 leq sum 牛客 exp frac 复杂度 dp


题目大意

统计长度为\(n\)且数位\(i\)出现至少\(c_i\)次的数字串数量。

\(i\in[0,w)\) \((2\leq w\leq 10)\)

\(1\leq c_i\leq 50000,\sum c_i\leq 50000\)

\(q (1\leq q\leq 300)\) 次询问,每次询问 \(n (1\leq n\leq 10^7)\)

题解

若 \(i\) 恰好出现 \(c_i\) 次,且 \(n=\sum c_i\),则方案数为 \(\frac{n!}{\prod_i c_i !}\)。

考虑指数型生成函数,

\[\exp(x)=\sum_{i=0}^\infty \frac{x^i}{i!} \]

数位 \(i\) 至少出现 \(c_i\) 次,所以需要减去次数小于 \(c_i\) 的项,即 \(\exp(x)-\sum_{i=0}^{c_i-1}\frac{x^i}{i!}\)

则最终答案为

\[[x^n]n!\prod_{k=1}^{w}\left(\exp(x)-\sum_{i=0}^{c_k-1}\frac{x^i}{i!}\right) \]

但是 \(n\) 太大了,不好直接卷积出来。

令 \(g_k(x)=\sum_{i=0}^{c_k-1}\frac{x^i}{i!}\)

考虑一下这个式子

\[\prod_{k=1}^{w}\left(\exp(x)-g_k(x)\right) \]

\[(\exp(x)-g_1(x))(\exp(x)-g_2(x))=\\ \exp(2x)-(g_1(x)+g_2(x))\exp(x)+g_1(x)g_2(x) \]

发现 \(\prod_{k=1}^{w}\left(\exp(x)-g_k(x)\right)\) 是 \(\sum_{k=0}^{w} \exp(kx)f_k(x)\) 的形式。

于是我们想要求出 \(f_0(x),f_1(x),\cdots,f_w(x)\)

设 \(dp(i,j)\) 只考虑前 \(i\) 个 \((\exp(x)-g(x))\) 时 \(f_j(x)\) 的值,则有

\[dp(i,j)=dp(i-1,j)-dp(i-1,j-1)g_i(x)\\ =dp(i-1,j)-dp(i-1,j-1)\left(\sum_{j=0}^{c_i-1}\frac{x^j}{j!}\right) \]

设 \(s=\sum c_i\),于是只要进行 \(w^2\) 次卷积就能计算出 \(f_0(x),f_1(x),\cdots,f_w(x)\),时间复杂度 \(O(w^2s\log s)\)。

对于单次询问,给定 \(n\),我们需要计算出 \(n!\sum_{k=0}^{w} \exp(kx)f_k(x)\) 的 \(n\) 次项系数即为答案。对于每个 \(\exp(kx)f_k(x)\),直接暴力卷积 \(n\) 次项,因为 \(f_k(x)\) 最高不超过 \(s\) 次项,所以时间复杂度为 \(O(s)\),每次询问要暴力求 \(w\) 个卷积,复杂度 \(O(ws)\),\(q\) 次询问,复杂度 \(O(qws)\)。还需要 \(O(n)\) 预处理阶乘及其逆元,综上,本题的时间复杂度为 \(O(n+w^2s\log s+qws)\)。

Code

标签:第四场,2022,leq,sum,牛客,exp,frac,复杂度,dp
来源: https://www.cnblogs.com/AEMShana/p/16537705.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有