UVA 11762 - Race to 1(概率)
2014-07-17 14:33
447 查看
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(概率)
- [uva 11762]Race to 1[概率DP]
- UVa 11762 Race to 1 / 概率DP
- UVA - 11762 - Race to 1 记忆化概率
- uva11762 Race to 1 概率dp求期望+记忆化搜索
- [uva 11762]Race to 1[概率DP]
- UVA 11762 概率dp+期望
- UVA11762 Race to 1
- UVA - 11762 Race to 1
- 【UVA】【11762】Race to 1(得到1)
- uva 11762 - Race to 1(马尔可夫)
- [UVA 11762] Race to 1
- UVA 11762 Race to 1
- uva11762 Race to 1
- [UVA11762] Race to 1 && 数学期望
- 随机转移(Race to 1,UVA 11762)
- UVA11762 Race to 1