zoukankan      html  css  js  c++  java
  • HDU4405 期望

    对于期望,首先,对于这个公式中p表示概率,x表示随机变量

    展开则为 ex= p1*x1+p2*x2+p3*x3.......

    对于本题 假设 ex[ i ]表示当前 i 走到 n 的期望值。所以若 i 处没有飞机,ex[ i ]=sigma(1/6*ex[i+k])+1 其中(k=1...6) (+1表示掷了一次骰子) 若 i 处有飞机,则直接等于 ex[ j ]

    结果则为 ex【0】

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 const int maxn = 100005;
     6 int fly[ maxn ];
     7 double ex[ maxn ];
     8 int main(){
     9     int n,m;
    10     while( scanf("%d%d",&n,&m)!=EOF ,n+m ){
    11         for( int i=0;i<=n;i++ ){
    12             ex[ i ]=0;
    13             fly[ i ]=-1;
    14         }
    15         for( int i=0;i<m;i++ ){
    16             int a,b;
    17             scanf("%d%d",&a,&b);
    18             fly[a]=b;
    19         }
    20         ex[ n ]=0;
    21         for( int i=n-1;i>=0;i-- ){
    22             if( fly[i]!=-1 ){
    23                 ex[ i ]=ex[ fly[i] ];
    24             }
    25             else {
    26                 for( int j=1;j<=6;j++ ){
    27                     if( i+j>=n )
    28                         ex[ i ]+=((1.0/6.0)*ex[ n ]);
    29                     else
    30                         ex[ i ]+=((1.0/6.0)*ex[ i+j ]);
    31                 }
    32                 ex[ i ]+=1.0;
    33             }
    34         }
    35         printf("%.4lf\n",ex[ 0 ]);
    36     }
    37     return 0;
    38 }
    keep moving...
  • 相关阅读:
    C语言学习笔记<九>
    C语言学习笔记<六>
    C语言学习笔记<八>
    C语言学习代码〈五〉
    C语言学习笔记<七>
    红队笔记横向移动总结
    pikachu通关
    java线程监控
    项目空负载服务器使用cpu过高
    @NotBlank注解使用不生效的解决办法
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2939293.html
Copyright © 2011-2022 走看看