一道莫反好题。

先证个式子:E(X)=∑i≥1P(X≥i)E(X)=\sum_{i\ge 1}P(X \ge i)E(X)=∑i≥1​P(X≥i),也就是最终长度为 XXX 的期望是所有最终长度小于等于 XXX 的概率之和。

证明:E(X)=∑i≥1iP(X=i)=∑i≥1∑1≤j≤iP(X=i)=∑j≥1∑i≥jP(X=i)=∑j≥1P(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)。

考虑容斥,最终长度大于等于 iii 等价于长度为 i−1i-1i−1 的序列 gcd⁡\gcdgcd 大于 1,这个可以用 1 减去 gcd⁡=1\gcd=1gcd=1 的概率,注意这里的 i≥2i \ge 2i≥2。

概率用满足条件方案数 / 总方案数计算,总方案数 mi−1m^{i-1}mi−1,因此只需要计算 i−1i-1i−1 时 gcd⁡=1\gcd=1gcd=1 的方案数即可。

推 gcd⁡=1\gcd=1gcd=1 的式子:∑1≤a1,a2,...,ai−1≤m[gcd⁡(a1,a2,...,ai−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≤a1,a2,...,ai−1≤m∑d∣gcd⁡(a1,a2,...,ai−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=1mμ(d)⌊md⌋i−1\sum_{d=1}^{m}\mu(d)\lfloor\dfrac{m}{d}\rfloor^{i-1}∑d=1m​μ(d)⌊dm​⌋i−1

然后开始计算答案式子,为 1+∑i≥2mi−1−∑d=1mμ(d)⌊md⌋i−1mi−11+\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−1i-1i−1 太丑,令 i←i−1i \gets i-1i←i−1,得到 1+∑i≥1mi−∑d=1mμ(d)⌊md⌋imi1+\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=1d=1d=1 时 ∑d=1mμ(d)⌊md⌋i=mi\sum_{d=1}^{m}\mu(d)\lfloor\dfrac{m}{d}\rfloor^i=m^i∑d=1m​μ(d)⌊dm​⌋i=mi,因此将这一部分提出来与 mim^imi 消掉。

然后交换求和符号,得到 1−∑d=1mμ(d)(⌊md⌋m)i1-\sum_{d=1}^{m}\mu(d)(\dfrac{\lfloor\frac{m}{d}\rfloor}{m})^i1−∑d=1m​μ(d)(m⌊dm​⌋​)i。

因为 ⌊md⌋m<1\dfrac{\lfloor\frac{m}{d}\rfloor}{m}<1m⌊dm​⌋​<1,根据 x<1→∑i≥1xi=x1−xx<1 \to \sum_{i\ge1}x^i=\dfrac{x}{1-x}x<1→∑i≥1​xi=1−xx​(貌似是用生成函数推的),得到 1−∑d=1mμ(d)⌊md⌋mm−⌊md⌋m1-\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:

/*
========= Plozia =========Author:PloziaProblem:CF1139D Steps to OneDate:2022/3/1
========= Plozia =========
*/#include <bits/stdc++.h>typedef long long LL;
const int MAXN = 1e5 + 5;
const LL P = 1e9 + 7;
int t, n, cntPrime, Prime[MAXN];
LL mu[MAXN], inv[MAXN];
bool book[MAXN];int Read()
{int sum = 0, fh = 1; char ch = getchar();for (; ch < '0' || ch > '9'; ch = getchar()) fh -= (ch == '-') << 1;for (; ch >= '0' && ch <= '9'; ch = getchar()) sum = sum * 10 + (ch ^ 48);return sum * fh;
}
int Max(int fir, int sec) { return (fir > sec) ? fir : sec; }
int Min(int fir, int sec) { return (fir < sec) ? fir : sec; }
LL ksm(LL a, LL b = P - 2, LL p = P)
{LL s = 1 % p;for (; b; b >>= 1, a = a * a % p)if (b & 1) s = s * a % p;return s;
}void init()
{book[1] = mu[1] = 1;for (int i = 2; i <= n; ++i){if (!book[i]) { Prime[++cntPrime] = i; mu[i] = -1; }for (int j = 1; j <= cntPrime; ++j){if (i * Prime[j] > n) break ;book[i * Prime[j]] = 1;if(i % Prime[j] == 0) { mu[i * Prime[j]] = 0; break ; }mu[i * Prime[j]] = -mu[i];}}for (int i = 2; i <= n; ++i) mu[i] = mu[i - 1] + mu[i];
}int main()
{n = Read(); init(); LL ans = 0;for (int i = 1; i <= n; ++i) inv[i] = ksm(i);for (int l = 2, r; l <= n; l = r + 1){r = Min(n / (n / l), n);ans = (ans + (mu[r] - mu[l - 1]) * (n / l) % P * inv[n - (n / l)] % P) % P;}ans = ((1 - ans) % P + P) % P;printf("%lld\n", ans);return 0;
}

CF1139D Steps to One 题解相关推荐

  1. (每日一题)CF1139D Steps to One 2021年天梯赛 L3-3 可怜的简单题(期望,莫比乌斯反演,杜教筛)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 一周连考三门,人都没了 Weblink 2021年天梯赛 L3-3 可怜的简单题 CF1139D Pr ...

  2. cf1139D. Steps to One(dp)

    题意 题目链接 从\([1, M]\)中随机选数,问使得所有数gcd=1的期望步数 Sol 一个很显然的思路是设\(f[i]\)表示当前数为\(i\),期望的操作轮数,转移的时候直接枚举gcd \(f ...

  3. 【期望dp 质因数分解】cf1139D. Steps to One

    有一种组合方向的考虑有没有dalao肯高抬啊? 题目大意 有一个初始为空的数组$a$,按照以下的流程进行操作: 在$1\cdots m$中等概率选出一个数$x$并添加到$a$的末尾 如果$a$中所有元 ...

  4. 【GPLT】【2021天梯赛真题题解】【231分】

    文章目录 L1-1 人与神 (5 分) 题目描述 题目分析 L1-2 两小时学完C语言 (5 分) 题目描述 题目分析 L1-3 强迫症 (10 分) 题目描述 题目分析 L1-4 降价提醒机器人 ( ...

  5. 解题报告(十八)数论题目泛做(Codeforces 难度:2000 ~ 3000 + )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. html常用英文编码大全,HTML常用特殊字符编码对照表以及其对应英文

    Memcached基础知识 主要内容: Memcached基本的工作原理 Memcached的两阶段哈希 Memcached的数据存储方式 Memcached新建Item分配内存过程 Memcache ...

  7. 【每日一题】Steps to One (容斥+错位相减)cf1139D

    题目链接 前置推论: 1.长度为1的序列只可能是一个1. 2.假设当前的序列长度为 k + 1 k+1 k+1,且前 k k k个数的 g c d = a gcd=a gcd=a不为1的话,那么第 k ...

  8. 哈尔滨理工大学软件与微电子学院程序设计竞赛 题解

    DEF题比较难一些,目前本菜鸡能力有限. 文章目录 A-Race B-Min Value C-Coronavirus G-OXR H-Maze I-Prime J-Compare K-Walk L-D ...

  9. HDOJ acm steps 3.1.1

    (都是递推求值,呵呵,好开心- - ) 今天又是在自习室通宵(文明玩的停不下来了) 游戏玩完想想该水题了,于是打开了HDOJ的ACM STEPS(这是个好东西,就像他的名字,一步步来的) 2.3.x貌 ...

最新文章

  1. Android老版本项目导入到新版SDK提示错误
  2. TF之LSTM:利用基于顺序的LSTM回归算法对DIY数据集sin曲线(蓝虚)预测cos(红实)(TensorBoard可视化)
  3. 从零开始入门 K8s | Kubernetes API 编程范式
  4. 用一个demo理解一下Flutter动画内部的代码流程
  5. Shark集群搭建配置
  6. DCMTK:类DSRBasicCodedEntry和DSRCodedEntryValue的测试程序
  7. 网站重启服务器有啥好处,常规服务器重启的好处和障碍
  8. 数学--数论--HDU 2197 本原串 (推规律)
  9. Redmi 9或搭载联发科Helio G80:内置5000mAh电池 支持NFC
  10. goahead 的认证和自定义登陆页面的cookie使用【原创】
  11. linux删除文件后不释放磁盘的问题
  12. oracle和mysql用户名_oracle的SID和用户名和角色
  13. 一篇好文之Android文本软键盘全解
  14. msys2+mingw64+ragel安装
  15. PC端模拟微信/QQ/钉钉运行环境 解决 请在微信客户端打开链接 解决 2021
  16. 迷你星球java,如何用手机制作迷你星球?迷你星球制作方法演示
  17. 阿里云账号注销踩坑实践记录
  18. SpringBoot mybatis 实现多级树形菜单
  19. 对比两个自定义对象是否相等
  20. MyBatis SQL里的大于号、小于号

热门文章

  1. 行人轨迹论文阅读SSAGCN: Social Soft Attention Graph Convolution Network for Pedestrian Trajectory Prediction
  2. 以Mapgis与Arcinfo之间的数据转换
  3. box-shadow单边
  4. 获取网页上没有下载链接的视频音频资源 火狐浏览器插件 Video DownloadHelper
  5. jQuery的下载与安装
  6. 前端js是什么意思?
  7. 论文阅读《Semantic Relation Reasoning for Shot-Stable Few-Shot Object Detection》
  8. 什么是BI、数据仓库、数据湖和数据中台,他们有什么差异?
  9. 计算机管理如何格式化u盘,如何格式化U盘【图文教程】
  10. Ceilometer原理及介绍