zoukankan      html  css  js  c++  java
  • 【SPOJ1026】FAVDICE

    SPOJ FAVDICE luogu SPOJ1026

    一个n面的骰子,求期望掷几次能使得每一面都被掷到

    优惠券收集者问题

    f[i]表示已掷到i面,期望掷多少面才能使每一面都掷到

    (frac in)的概率掷到已掷到的,(frac{n-i}f)的概率掷到未掷到过的

    所以(f[i]=frac in imes f[i] +frac {n-i}n imes f[i+1]+1)

    (掷到已掷到的概率 imes已掷到i面还期望掷的次数+掷到未掷到的概率 imes掷到i+1面还期望掷的次数)至少得掷一次所以后面+1

    化简得(f[i]=f[i+1]+frac n{n-i})

    #include <iostream>
    using namespace std;
    const int N=10000+5,M=20000+5,inf=0x3f3f3f3f,P=19650827;
    int n;double f[N];
    template <class t>void rd(t &x){
        x=0;int w=0;char ch=0;
        while(!isdigit(ch)) w|=ch=='-',ch=getchar();
        while(isdigit(ch)) x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
        x=w?-x:x;
    }
    
    int main(){
    //	freopen("in2.txt","r",stdin);
    	//freopen("xor.out","w",stdout);
    	int T;rd(T);
    	while(T--){
    		rd(n);f[n]=0;
    		for(int i=n-1;i>=0;--i) f[i]=f[i+1]+(double)n/(n-i);
    		printf("%.2lf
    ",f[0]);
    	}
    	return 0;
    }
    
  • 相关阅读:
    centos7 修复引导
    Django 过滤器
    Django 面向对象orm
    Django models字段查询谓词表
    linux常用的监控命令
    常用SQL语句
    python实现FTP服务器
    用python做一个图片验证码
    rsync
    jsonp的理解
  • 原文地址:https://www.cnblogs.com/lxyyyy/p/11397812.html
Copyright © 2011-2022 走看看