博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LightOJ 1038 Race to 1 Again
阅读量:7110 次
发布时间:2019-06-28

本文共 1145 字,大约阅读时间需要 3 分钟。

每次一个数,问不断除以约数,到1的时候,除的个数的期望。

怕超时,打表,递推公式:

(n的约数的个数(不含本身))*a[n]=a[n的约数(除了本身)](求和)+约数的个数(包含本身);

用a[8]举个例子;

a[8]=1/4*(a[1]+1)+1/4*(a[2]+1)+1/4*(a[4]+1)+1/4*(a[8]+1);

每次约去就让次数加一~

完美~

#include <iostream>

#include <functional>
#include <algorithm>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <iomanip>
#include <sstream>
#include <utility>
#include <bitset>
#include <cctype>
#include <cstdio>
#include <limits>
#include <memory>
#include <string>
#include <vector>
#include <cmath>
#include <ctime>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
using namespace std;
int main()
{
    double a[100005];
    a[1]=0;
    for (int i=2;i<=100000;i++)
    {
        double temp=0;
        double cnt=0;
        for (int j=1;j*j<=i;j++)
        {
            if (i%j==0)
            {
                temp+=a[j];
                cnt++;
                if (i/j!=j&&j!=1)
                {
                    temp+=a[i/j];
                    cnt++;
                }
            }
        }
        a[i]=(temp+cnt+1.0)/cnt;
    }
//    for (int i=2;i<=100000;i++)
//    {
//        if (i%10==0) system("pause");
//        printf ("%d=%f\n",i,a[i]);
//    }
    int T,ncas=1;
    scanf ("%d",&T);
    while (T--)
    {
        int n;
        scanf ("%d",&n);
        printf ("Case %d: %.10f\n",ncas++,a[n]);
    }
    return 0;
}

转载于:https://www.cnblogs.com/nj-czy/p/5440287.html

你可能感兴趣的文章
RHEL6基础二十七之quota磁盘配额管理
查看>>
OpenStack —— 网络服务Neutron(五)
查看>>
Puppet parser命令参数介绍(八)
查看>>
安装Linux
查看>>
由SecureCRT命令行快捷键谈学习思想
查看>>
基于异常的检测技术
查看>>
关于Spring MVC 4,你需要知道的那些事
查看>>
微软私有云分享(R2)20Azure Pack与远程控制台2
查看>>
统一沟通-技巧-8-在internet上是否正常-2-For Lync Server 2010
查看>>
从虚幻4动画系统与控制器交互理解数据驱动(一)古老的写法
查看>>
松松软文:媒介编辑管理系统上线
查看>>
ansible filter_plugins插件实现jinja2自定义filter过滤器
查看>>
Windows纸牌维加斯式计分法
查看>>
三星推CHG90显示器,高知新富与土豪谁为之疯狂?
查看>>
Processing XML with Java
查看>>
一个不错的开源wiki
查看>>
(转)如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)
查看>>
各种数据库简单连接
查看>>
程序员的运动建议(转载)
查看>>
SQL Server Service Broker 基础知识 PPT 文档 – 分享下载!
查看>>