题目链接:洛谷


这个公式可真是个好东西。(哪位大佬知道它叫什么名字的?)

如果$X$恒$\geq 0$,那么

$$E[X]=\int_0^{+\infty}P(X>t)dt$$

呸,我什么都没写。

如果$X\in N$,那么

$$E[X]=\sum_{i=0}^{+\infty}P(X>i)$$


根据上面的公式,我们首先看看如何计算$P(X>i)$

这个表示前$i$个数的$gcd$不为1,我们反面考虑,$gcd$为1的概率可以通过莫比乌斯反演求出,所以

$$P(X>i)=1-\sum_{d=1}^m\mu(d)(\frac{\lfloor\frac{m}{d}\rfloor}{m})^i$$

$$=-\sum_{d=2}^m\mu(d)(\frac{\lfloor\frac{m}{d}\rfloor}{m})^i$$

带入上面的公式。

$$E[X]=\sum_{i=1}^{+\infty}P(x>i)+1$$

$$=1-\sum_{i=1}^{+\infty}\sum_{d=2}^m\mu(d)(\frac{\lfloor\frac{m}{d}\rfloor}{m})^i$$

$$=1-\sum_{d=2}^{m}\mu(d)\sum_{i=1}^{+\infty}(\frac{\lfloor\frac{m}{d}\rfloor}{m})^i$$

$$=1-\sum_{d=2}^m\mu(d)\frac{\lfloor\frac{m}{d}\rfloor}{m-\lfloor\frac{m}{d}\rfloor}$$

预处理$\mu$和$inv$之后,时间复杂度$O(m)$

 #include<cstdio>
#define Rint register int
using namespace std;
typedef long long LL;
const int N = , mod = 1e9 + ;
inline int add(int a, int b){int res = a + b; if(res >= mod) res -= mod; return res;}
inline int dec(int a, int b){int res = a - b; if(res < ) res += mod; return res;}
int n, mu[N], pri[N], tot, inv[N], ans, tmp;
bool notp[N];
int main(){
scanf("%d", &n);
inv[] = ;
for(Rint i = ;i <= n;i ++) inv[i] = (LL) (mod - mod / i) * inv[mod % i] % mod;
notp[] = notp[] = true;
mu[] = ;
for(Rint i = ;i <= n;i ++){
if(!notp[i]){mu[i] = mod - ; pri[++ tot] = i;}
for(Rint j = ;j <= tot && i * pri[j] <= n;j ++){
notp[i * pri[j]] = true;
if(i % pri[j]) mu[i * pri[j]] = mod - mu[i];
else break;
}
}
for(Rint i = ;i <= n;i ++){
tmp = n / i;
ans = add(ans, (LL) mu[i] * tmp % mod * inv[n - tmp] % mod);
}
printf("%d", dec(, ans));
}

CF1139D

CF1139D Steps to One的更多相关文章

  1. 题解-CF1139D Steps to One

    题面 CF1139D Steps to One 一个数列,每次随机选一个 \([1,m]\) 之间的数加在数列末尾,数列中所有数的 \(\gcd=1\) 时停止,求期望长度 \(\bmod 10^9+ ...

  2. cf1139D. Steps to One(dp)

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

  3. CF1139D Steps to One(DP,莫比乌斯反演,质因数分解)

    stm这是div2的D题……我要对不住我这个紫名了…… 题目链接:CF原网  洛谷 题目大意:有个一开始为空的序列.每次操作会往序列最后加一个 $1$ 到 $m$ 的随机整数.当整个序列的 $\gcd ...

  4. CF1139D Steps to One (莫比乌斯反演 期望dp)

    \[ f[1] = 0 \] \[ f[i] = 1 + \frac{1}{m} \sum_{j = 1} ^ n f[gcd(i, j)] \ \ \ \ \ \ (i != 1) \] 然后发现后 ...

  5. CF1139D Steps to One 题解【莫比乌斯反演】【枚举】【DP】

    反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant ...

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

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

  7. 【CF1139D】Steps to One(动态规划)

    [CF1139D]Steps to One(动态规划) 题面 CF 你有一个数组,每次随机加入一个\([1,n]\)的数,当所有数\(gcd\)为\(1\)时停止,求数组长度的期望. 题解 设\(f[ ...

  8. animation-timing-function: steps() 详解

    在应用 CSS3 渐变/动画时,有个控制时间的属性 <animation-timing-function> .它的取值中除了常用到的 贝萨尔曲线以外,还有个让人比较困惑的 steps()  ...

  9. CSS3 Animation 帧动画 steps()

    @keyframes fn{ 0%{} 100%{} } CSS3的Animation有八个属性 animation-name :动画名 fn animation-duration:时间 1s ani ...

随机推荐

  1. 七天开发进度(七)(微信小程序版(二)记账本)

    终于把小程序版弄完了,不过这并不能称之为是我的作品,因为我还没有彻底学会小程序,对JavaScript语言还有很多不会的地方,没有掌握, 这次的程序是通过学习网上的多个教程,多个案例结合拼凑模仿者人家 ...

  2. java学习 之 java基本数据类型

    java 8个基本数据类型 public class BasicDataType { public static void main(String args[]) { //数据类型 //Byte Sy ...

  3. 数据库备份和还原(固定IP版)

    使用方法: 1.首次使用双击export.bat进行备份数据库:2.以后每次使用双击setup.bat进行还原数据库: 备注:如果数据库内容有变,需要重新执行export.bat进行备份数据库. ex ...

  4. Android 杂谈---ListView 之BaseAdapter

    前言 几种适配器里面相对来说比较简单的一种适配器,在使用时需要实现几个方法,并且也需要对convertView进行优化 此篇文章以使用listView与BaseAdapter来实现表格样式的布局举例( ...

  5. .net core web api 与httpclient发送和接收文件及数据

    客户端 HttpClient var url = $"https://localhost:44323/api/values/posttest?resource_source=yangwwme ...

  6. 动态dp

    题解: 首先这类题目本身是一个dp/树形dp 然后带上了修改(ddp) 为了权衡查询和修改的时间,我们采用树剖来维护 假设我们能够对每个点维护除了重儿子之外的信息 那么我们的修改只需要修改log个节点 ...

  7. beta冲刺5/7

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(5/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 ppt制作中 数据集标注 接下来的计划 制作p ...

  8. js分析 猫_眼_电_影 字体文件 @font-face

    0. 参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/@font-face 这是一个叫做@font-face 的CSS @规则 ,它允许网页开发 ...

  9. SQL反模式学习笔记16 使用随机数排序

    目标:随机排序,使用高效的SQL语句查询获取随机数据样本. 反模式:使用RAND()随机函数 SELECT * FROM Employees AS e ORDER BY RAND() Limit 1 ...

  10. Mysql数据实时同步

    企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾 ...