题目链接:洛谷


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

如果$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. openssl-1.1.0g reference

    include/openssl aes.h: struct aes_key_st { aes.h: unsigned long rd_key[4 * (AES_MAXNR + 1)]; aes.h: ...

  2. ILMerge在MSBuild与ILMerge在批处理文件中运行

    ILMerge ILMerge是一个将多个.NET程序集合并到一个程序集中的实用程序.它可以免费使用,并以NuGet包的形式提供. 如果您在使用它时遇到任何问题,请与我们联系.(mbarnett at ...

  3. 基于Python+Django重定向的例子

    Django源码, 这里HttpResponseRedirect和HttpResponsePermanentRedirect没有太大差别,前者是返回302临时重定向,后者返回301永久重定向 clas ...

  4. Nhibernate 使用 (二)

    在第一篇中该做的配置基本上已经全部完成,现在直接开始测试 public static ISession NhibClient() { try { // Nhibernate 配置文件的位置 var p ...

  5. Spring 源码分析-1-启动

    Spring 源码分析-1-启动 在web项目中使用spring的时候,我们会在web.xml中加入如下配置: <listener> <listener-class>org.s ...

  6. 20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第一周:阶段性总结)

    20175312 2018-2019-2 <Java程序设计>结对编程练习_四则运算(第一周:阶段性总结) 结对对象与其博客链接 20175309 刘雨恒:https://www.cnbl ...

  7. 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作

    启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...

  8. jmeter之JDBC Request各种数据库配置

    URL和JDBC驱动: Datebase Driver class Database URL MySQL com.mysql.jdbc.Driver jdbc:mysql://host:port/{d ...

  9. CodeForces - 1025C 字符串处理,画一个圆。。。

    题目链接: https://vjudge.net/problem/1810469/origin 题目大意: 给你一个字符串,中间切一刀,左右两边均反转,然后右边的串拼接到左边上. 思路: 比如  aa ...

  10. svn提交按钮灰选

    1.当我新建了一个文件或者文件夹,要提交的时候出现ok按钮灰选,提交不了. 解决方法:提交信息多写一些字儿就可以了,挥着回车换行也行 2.报错:you need to upgrade the work ...