UVA 11762 - Race to 1(概率)
2017-05-28 12:29
423 查看
UVA 11762 - Race to 1
题意:给定一个n,每次随即选择一个n以内的质数,假设不是质因子,就保持不变,假设是的话。就把n除掉该因子,问n变成1的次数的期望值思路:tot为总的质数。cnt为质因子个数,那么f(n)=(1−cnt/tot)∗f(n)+∑f(n/prime)∗(1/tot),然后利用记忆化搜索去做就可以
代码:
#include <stdio.h> #include <string.h> const int N = 1000005; int t, n, prime , pn = 0, vis ; double f ; void get_table() { for (int i = 2; i < N; i++) { if (vis[i]) continue; prime[pn++] = i; for (int j = i; j < N; j += i) vis[j] = 1; } } double dfs(int n) { if (f != -1) return f ; f = 0; if (n == 1) return f ; int tot = 0, cnt = 0; for (int i = 0; i < pn && prime[i] <= n; i++) { tot++; if (n % prime[i]) continue; cnt++; f += dfs(n / prime[i]); } f = (f + tot) / cnt; return f ; } int main() { get_table(); for (int i = 0; i < N; i++) f[i] = -1; int cas = 0; scanf("%d", &t); while (t--) { scanf("%d", &n); printf("Case %d: %.7lf\n", ++cas, dfs(n)); } return 0; }
相关文章推荐
- UVA 11762 Race to 1 概率DP
- UVa 11762 - Race to 1 (概率 期望 DP 马尔可夫过程)
- [uva 11762]Race to 1[概率DP]
- UVa 11762 Race to 1 / 概率DP
- uva11762 Race to 1 概率dp求期望+记忆化搜索
- [uva 11762]Race to 1[概率DP]
- UVA - 11762 - Race to 1 记忆化概率
- UVA 11762 Race to 1 dp+概率
- UVA 11762 - Race to 1(概率)
- UVA 11762 Race to 1(记忆化+期望)
- 【UVA】【11762】Race to 1(得到1)
- UVA 11762 概率dp+期望
- uva 11762 - Race to 1(马尔可夫)
- [UVA11762] Race to 1 && 数学期望
- UVA 11762 Race to 1
- uva11762 Race to 1
- [UVA 11762] Race to 1
- UVA 11762 Race To 1 [期望DP]
- UVA 11762 Race to 1
- 随机转移(Race to 1,UVA 11762)