| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> CF1139D Steps to One 题解 -> 正文阅读 |
|
[人工智能]CF1139D Steps to One 题解 |
一道莫反好题。 先证个式子: E ( X ) = ∑ i ≥ 1 P ( X ≥ i ) E(X)=\sum_{i\ge 1}P(X \ge i) E(X)=∑i≥1?P(X≥i),也就是最终长度为 X X X 的期望是所有最终长度小于等于 X X X 的概率之和。 证明: E ( X ) = ∑ i ≥ 1 i P ( X = i ) = ∑ i ≥ 1 ∑ 1 ≤ j ≤ i P ( X = i ) = ∑ j ≥ 1 ∑ i ≥ j P ( X = i ) = ∑ j ≥ 1 P ( x ≥ j ) E(X)=\sum_{i\ge 1}iP(X=i)=\sum_{i\ge 1}\sum_{1\le j\le i}P(X=i)=\sum_{j\ge 1}\sum_{i\ge j}P(X=i)=\sum_{j\ge1}P(x\ge j) E(X)=∑i≥1?iP(X=i)=∑i≥1?∑1≤j≤i?P(X=i)=∑j≥1?∑i≥j?P(X=i)=∑j≥1?P(x≥j)。 考虑容斥,最终长度大于等于 i i i 等价于长度为 i ? 1 i-1 i?1 的序列 gcd ? \gcd gcd 大于 1,这个可以用 1 减去 gcd ? = 1 \gcd=1 gcd=1 的概率,注意这里的 i ≥ 2 i \ge 2 i≥2。 概率用满足条件方案数 / 总方案数计算,总方案数 m i ? 1 m^{i-1} mi?1,因此只需要计算 i ? 1 i-1 i?1 时 gcd ? = 1 \gcd=1 gcd=1 的方案数即可。 推 gcd ? = 1 \gcd=1 gcd=1 的式子: ∑ 1 ≤ a 1 , a 2 , . . . , a i ? 1 ≤ m [ gcd ? ( a 1 , a 2 , . . . , a i ? 1 ) = 1 ] \sum_{1 \le a_1,a_2,...,a_{i-1} \le m}[\gcd(a_1,a_2,...,a_{i-1})=1] ∑1≤a1?,a2?,...,ai?1?≤m?[gcd(a1?,a2?,...,ai?1?)=1] 莫比乌斯反演,得到 ∑ 1 ≤ a 1 , a 2 , . . . , a i ? 1 ≤ m ∑ d ∣ gcd ? ( a 1 , a 2 , . . . , a i ? 1 ) μ ( d ) \sum_{1 \le a_1,a_2,...,a_{i-1}\le m}\sum_{d \mid \gcd(a_1,a_2,...,a_{i-1})}\mu(d) ∑1≤a1?,a2?,...,ai?1?≤m?∑d∣gcd(a1?,a2?,...,ai?1?)?μ(d) 换个枚举顺序,顺便处理一下求和符号得到 ∑ d = 1 m μ ( d ) ? m d ? i ? 1 \sum_{d=1}^{m}\mu(d)\lfloor\dfrac{m}{d}\rfloor^{i-1} ∑d=1m?μ(d)?dm??i?1 然后开始计算答案式子,为 1 + ∑ i ≥ 2 m i ? 1 ? ∑ d = 1 m μ ( d ) ? m d ? i ? 1 m i ? 1 1+\sum_{i\ge2}\dfrac{m^{i-1}-\sum_{d=1}^m\mu(d)\lfloor\dfrac{m}{d}\rfloor^{i-1}}{m^{i-1}} 1+∑i≥2?mi?1mi?1?∑d=1m?μ(d)?dm??i?1?。 i ? 1 i-1 i?1 太丑,令 i ← i ? 1 i \gets i-1 i←i?1,得到 1 + ∑ i ≥ 1 m i ? ∑ d = 1 m μ ( d ) ? m d ? i m i 1+\sum_{i\ge1}\dfrac{m^i-\sum_{d=1}^m\mu(d)\lfloor\dfrac{m}{d}\rfloor^i}{m^i} 1+∑i≥1?mimi?∑d=1m?μ(d)?dm??i?。 注意到 d = 1 d=1 d=1 时 ∑ d = 1 m μ ( d ) ? m d ? i = m i \sum_{d=1}^{m}\mu(d)\lfloor\dfrac{m}{d}\rfloor^i=m^i ∑d=1m?μ(d)?dm??i=mi,因此将这一部分提出来与 m i m^i mi 消掉。 然后交换求和符号,得到 1 ? ∑ d = 1 m μ ( d ) ( ? m d ? m ) i 1-\sum_{d=1}^{m}\mu(d)(\dfrac{\lfloor\frac{m}{d}\rfloor}{m})^i 1?∑d=1m?μ(d)(m?dm???)i。 因为 ? m d ? m < 1 \dfrac{\lfloor\frac{m}{d}\rfloor}{m}<1 m?dm???<1,根据 x < 1 → ∑ i ≥ 1 x i = x 1 ? x x<1 \to \sum_{i\ge1}x^i=\dfrac{x}{1-x} x<1→∑i≥1?xi=1?xx?(貌似是用生成函数推的),得到 1 ? ∑ d = 1 m μ ( d ) ? m d ? m m ? ? m d ? m 1-\sum_{d=1}^{m}\mu(d)\dfrac{\dfrac{\lfloor\frac{m}{d}\rfloor}{m}}{m-\dfrac{\lfloor\frac{m}{d}\rfloor}{m}} 1?∑d=1m?μ(d)m?m?dm???m?dm????,然后整除分块即可。 GitHub:CodeBase-of-Plozia Code:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 18:36:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |