【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式子质因数分解求…
问题描述: 你正在爬楼梯. 它需要n步才能达到顶峰. 每次你可以爬1或2步. 您可以通过多少不同的方式登顶? 注意:给定n将是一个正整数. Example 1: Input: 2 Output: 2 Explanation: There are two ways to climb to the top. 1. 1 step + 1 step 2. 2 steps Example 2: Input: 3 Output: 3 Explanation: There are three ways to…
[CF1139D]Steps to One(动态规划) 题面 CF 你有一个数组,每次随机加入一个\([1,n]\)的数,当所有数\(gcd\)为\(1\)时停止,求数组长度的期望. 题解 设\(f[i]\)表示\(gcd\)为\(i\)时的答案的期望. 考虑转移就是每次选一个数和\(i\)求个\(gcd\),那么计算一下变成每个可能的值的方案数直接暴力转移就行了. 复杂度似乎是两个\(log\)??? #include<iostream> #include<cstdio> #in…
2020-01-05 11:52:40 问题描述: 问题求解: 好像多次碰到类似的lcs的变种题了,都是套上了回文的壳.这里再次记录一下. 其实本质就是裸的lcs,就出结果了. public int minInsertions(String s) { StringBuffer sb = new StringBuffer(s); String b = sb.reverse().toString(); return s.length() - lcs(s, b); } public int lcs(S…