zoukankan      html  css  js  c++  java
  • HDU 4652 Dice

    Description

    (m) 面的骰子,求:
    1.出现 (n) 个连续的相同颜色的时候停止
    2.出现 (n) 个连续的不同颜色的时候停止
    的期望次数
    题面

    Solution

    然后对于第一问,做差:
    (f[i]=frac{1}{m}f[i+1]+frac{m-1}{m}f[1]+1)
    (f[i+1]=frac{1}{m}f[i+2]+frac{m-1}{m}f[1]+1)
    (f[i+1]-f[i]=frac{1}{m}(f[i+2]-f[i+1]))
    求和之后得到 (f[n]-f[0]=frac{1-m^{n}}{1-m})
    因为 (f[n]=0),所以代入就可以 (O(1)) 得到答案 (f[0])

    对于第二问,同理:
    (g[i+2]-g[i+1]=frac{m-i-1}{m}(g[i+1]-g[i]))
    这个式子就不能 (O(1)) 算了,我们 (O(n)) 递推然后再求和就行了

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,op;
    inline void work(){
    	scanf("%d%d%d",&op,&m,&n);
    	if(op==0)printf("%.9lf
    ",(1.0-pow(m,n))/(1.0-m));
    	else{
    		double t=1.0,ans=0;
    		for(int i=1;i<=n;i++){
    			ans+=t;
    			t*=1.0*m/(m-i);
    		}
    		printf("%.9lf
    ",ans);
    	}
    }
    int main(){
      freopen("pp.in","r",stdin);
      freopen("pp.out","w",stdout);
      int T;
      while(~scanf("%d",&T)){
    	  while(T--)work();
      }
      return 0;
    }
    
    
  • 相关阅读:
    C# 隐式转换 显示转换
    C# 枚举几种写法细节
    C# System.Int32 与 int 区别
    JavaScript中的闭包
    JS Arguments对象
    分页存储过程 sql
    JS Select 选项清空
    WebGL学习笔记三
    WebGL学习笔记二
    WebGL学习笔记一
  • 原文地址:https://www.cnblogs.com/Yuzao/p/8671992.html
Copyright © 2011-2022 走看看