zoukankan      html  css  js  c++  java
  • Light OJ 1038

    题目的意思是说任何一个大于1的整数,经过若干次除以自己的因子之后可以变为1, 求该变换字数的数学期望值。

     
    题目分析:
    我们设置dp[n] 为数字n的期望。假设n的因子为k1, k2, k3.... 共有k个
    那么 dp[n] = (dp[k1] + dp[k2] +..... + dp[n] + k)* (1/k)
    公式化简一下:
    dp[n] = (1/(k-1)) * (dp[k1] + dp[k2] .........+dp[n] + k)
    式子出来记忆化搜索一下
    ===========================================================================================
     
     
        #include<cstdio>
        #include<cstring>
        #include<iostream>
        #include<algorithm>
        #include<cmath>
        #include<queue>
        #include<vector>
        #include<map>
        using namespace std;
        typedef long long LL;
        const int INF = 1e9+7;
        const int MAXN = 100055;
        double dp[MAXN];
    
        double DFS(int n)
        {
            if(dp[n] != -1) return dp[n];
    
            dp[n] = 0;
            int len = sqrt(n+1), k = 0;
            for(int i=1; i<=len; i++)
            {
                if(i*i == n)
                {
                    k ++;
                    dp[n] += DFS(i);
                }
                else if(n%i == 0)
                {
                    k += 2;
                    dp[n] += DFS(i);
                    dp[n] += DFS(n/i);
                }
            }
            dp[n] = 1.0/(k-1) * (dp[n] + k);
            return  dp[n];
        }
    
        int main()
        {
            int T, cas = 1, n;
            for(int i=0; i<= 100005; i++)
                dp[i] = -1;
            dp[1] = 0;
            scanf("%d", &T);
            while(T --)
            {
                scanf("%d", &n);
    
                printf("Case %d: %.6lf
    ",cas ++, DFS(n) );
            }
    
            return 0;
        }
  • 相关阅读:
    喜欢这效果
    jQuery.Validate 使用例子
    网站安全要略谨记
    asp.net发送邮件
    URL参数的加号等特殊字符的处理
    sqlhelper
    Python单元测试框架
    基于Selenium2与Python自动化测试环境搭建
    Robot Framework和Selenium 2 Grid集成指南
    APP性能测试(CPU)
  • 原文地址:https://www.cnblogs.com/chenchengxun/p/4914622.html
Copyright © 2011-2022 走看看