zoukankan      html  css  js  c++  java
  • SPOJ1026 概率DP

     Favorite Dice 

    BuggyD loves to carry his favorite die around. Perhaps you wonder why it's his favorite? Well, his die is magical and can be transformed into an N-sided unbiased die with the push of a button. Now BuggyD wants to learn more about his die, so he raises a question:

    What is the expected number of throws of his die while it has N sides so that each number is rolled at least once?

    Input

    The first line of the input contains an integer t, the number of test cases. t test cases follow.

    Each test case consists of a single line containing a single integer N (1 <= N <= 1000) - the number of sides on BuggyD's die.

    Output

    For each test case, print one line containing the expected number of times BuggyD needs to throw his N-sided die so that each number appears at least once. The expected number must be accurate to 2 decimal digits.

    Example

    Input:
    2
    1
    12
    
    Output:
    1.00
    37.24

     

    题意:

    甩一个n面的骰子,问每一面都被甩到的次数期望是多少。

    思路:

    dp[i]:抛到i面的期望次数,dp[i]=dp[i-1]+n/(n-i+1)

    代码:

     1 #include"bits/stdc++.h"
     2 
     3 #define db double
     4 #define ll long long
     5 #define vl vector<ll>
     6 #define ci(x) scanf("%d",&x)
     7 #define cd(x) scanf("%lf",&x)
     8 #define cl(x) scanf("%lld",&x)
     9 #define pi(x) printf("%d
    ",x)
    10 #define pd(x) printf("%f
    ",x)
    11 #define pl(x) printf("%lld
    ",x)
    12 #define rep(i, n) for(int i=0;i<n;i++)
    13 using namespace std;
    14 const int N   = 1e6 + 5;
    15 const int mod = 1e9 + 7;
    16 const int MOD = 998244353;
    17 const db  PI  = acos(-1.0);
    18 const db  eps = 1e-10;
    19 const ll INF = 0x3fffffffffffffff;
    20 int t;
    21 db dp[N];
    22 void cal(int n)
    23 {
    24     dp[0]=0;
    25     for(int i=1;i<=1000;i++) dp[i]=dp[i-1]+1.0*n/(n-i+1);//抛出新一面的次数
    26     printf("%.2f
    ",dp[n]);
    27 }
    28 int main()
    29 {
    30     ci(t);
    31     while(t--){
    32         int n;
    33         ci(n);
    34         cal(n);
    35     }
    36     return 0;
    37 }
  • 相关阅读:
    Redis分布式锁的实现原理
    Redis锁的简单应用
    Redis所需内存 超过可用内存怎么办
    redis学习笔记之虚拟内存
    组织安全性SQL
    应收发票相关脚本
    用户与职责与请求关系语句
    应收事物处理删除 SQL 语句
    总账库存科目明细追溯
    月结各模块关闭情况查询
  • 原文地址:https://www.cnblogs.com/mj-liylho/p/9535931.html
Copyright © 2011-2022 走看看