您的位置:首页 > 大数据 > 人工智能

7_22_D题 Race to 1 Again(求期望)

2016-09-04 15:41 309 查看

7_22_D题 Race to 1 Again

题意

一个数用他自己的因数(包括它本身)去除他自己,求除到一的期望次数。

思路

很明显一个数被除到一的期望次数,就是他所有因数除到一期望次数的和除以因数的数量再加一,化简得到递推式,预处理出来就可以了。

代码

#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;
const int maxn = 1e5;
double E[maxn];

int init(){
E[1] = 0;
for(int i = 2 ; i <= maxn ; i ++){
double sum = 0;
int cnt = 0;
for(int k = 1 ; k*k <= i ; k ++){
if(i%k) continue;
sum += E[k];
cnt ++;
if(k*k != i){
sum += E[i/k];
cnt ++;
}
}
sum += cnt;
E[i] = sum/(cnt-1);
}
}

int main(){
init();
int T,kas= 1;;
cin >> T;
while(T --){
int d;
scanf("%d",&d);
printf("Case %d: %.9f\n",kas ++,E[d]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: