CF1139D Steps to One】的更多相关文章

题面 CF1139D Steps to One 一个数列,每次随机选一个 \([1,m]\) 之间的数加在数列末尾,数列中所有数的 \(\gcd=1\) 时停止,求期望长度 \(\bmod 10^9+7\). 数据范围:\(1\le m\le 10^5\). 蒟蒻语 这题的非 dp 做法讲得太玄了而且写题解的人貌似不屑于解释,于是蒟蒻来写一篇. (其实是 ubuntu 剪贴板炸了没得记录题目了只好写题解了). 蒟蒻解 先推一波概率期望式(\(E(x)\) 是 \(x\) 的期望,\(P(x)\)…
题目链接:洛谷 这个公式可真是个好东西.(哪位大佬知道它叫什么名字的?) 如果$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-\su…
题意 题目链接 从\([1, M]\)中随机选数,问使得所有数gcd=1的期望步数 Sol 一个很显然的思路是设\(f[i]\)表示当前数为\(i\),期望的操作轮数,转移的时候直接枚举gcd \(f[i] = 1 + \frac{ \sum_{j=1}^N f[gcd(i, j)]}{N}\) 然后移一下项就可以算出\(f[i]\)了. 发现gcd相同的有很多,可以预处理一下. 复杂度\(O(跑的过)\) 还有一种反演做法表示推不出来qwq #include<bits/stdc++.h> #…
stm这是div2的D题……我要对不住我这个紫名了…… 题目链接:CF原网  洛谷 题目大意:有个一开始为空的序列.每次操作会往序列最后加一个 $1$ 到 $m$ 的随机整数.当整个序列的 $\gcd$ 为 $1$ 时停止.问这个序列的期望长度对 $10^9+7$ 取模的值. $1\le m\le 10^5$. 首先很容易想到DP:$f_i$ 表示目前的 $\gcd$ 为 $i$,期望还要多少次才能结束. 那么有 $f_1=0$. 转移,直接枚举即可:$f_i=1+\dfrac{1}{m}\su…
\[ f[1] = 0 \] \[ f[i] = 1 + \frac{1}{m} \sum_{j = 1} ^ n f[gcd(i, j)] \ \ \ \ \ \ (i != 1) \] 然后发现后面这一块gcd的个数只可能是i的约数, 那么考虑枚举约数 \[ f[i] = 1 + \frac{1}{m}\sum_{d | i} f[d] cnt(d, i) \] \(cnt(d, i)\)表示和[1,m]内与i的gcd为d的数字个数 考虑这个东西能够怎么算, \(cnt(d, i)\)显然…
反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant \(m\). He performs the following algorithm: Select a random integer \(x\) uniformly in range from \(1\) to \(m\) and append it to the end of \(a\). Co…
有一种组合方向的考虑有没有dalao肯高抬啊? 题目大意 有一个初始为空的数组$a$,按照以下的流程进行操作: 在$1\cdots m$中等概率选出一个数$x$并添加到$a$的末尾 如果$a$中所有元素的$\gcd=1$则完成这个数组$a$的修改 重复这一过程 求数组$a$的期望长度,$m \le 10^5,\mod 10^9+7$ 题目分析 质因数分解的期望dp题 以下介绍的两个做法中,第一个做法本人不会所以  求助会做的dalao麻烦高抬一手   : 第二个做法是对推得的dp式子质因数分解求…
[CF1139D]Steps to One(动态规划) 题面 CF 你有一个数组,每次随机加入一个\([1,n]\)的数,当所有数\(gcd\)为\(1\)时停止,求数组长度的期望. 题解 设\(f[i]\)表示\(gcd\)为\(i\)时的答案的期望. 考虑转移就是每次选一个数和\(i\)求个\(gcd\),那么计算一下变成每个可能的值的方案数直接暴力转移就行了. 复杂度似乎是两个\(log\)??? #include<iostream> #include<cstdio> #in…
在应用 CSS3 渐变/动画时,有个控制时间的属性 <animation-timing-function> .它的取值中除了常用到的 贝萨尔曲线以外,还有个让人比较困惑的 steps() 函数. teps(n,start/end) 第一个参数 number 为指定的间隔数,即把动画分为 n 步阶段性展示,第二个参数默认为 end,设置最后一步的状态,start 为结束时的状态,end 为开始时的状态. steps 有两个参数 第一个肯定是分几步执行完 第二个有两个值 start 第一帧是第一步…
@keyframes fn{ 0%{} 100%{} } CSS3的Animation有八个属性 animation-name :动画名 fn animation-duration:时间 1s animation-delay:延时 1s animation-iteration-count:次数  infinite animation-direction:方向 alternate(反向) animation-play-state:控制    running paused animation-fil…