zoukankan      html  css  js  c++  java
  • HDU 4405 Aeroplane chess

    本题乃水题是也。dp(i)表示当前在第i格时,到达终点需要掷骰子次数的期望。dp(i)=1/6(dp(i + 1) + dp(i + 2) + dp(i + 3) + dp(i + 4)+ dp(i + 5) + dp(i + 6))+1。如果i可以直接跳到某点j,则dp(i)=dp(j)。

    View Code
     1 #include <iostream>
     2 #include <cstdio>
     3 #define maxn 100010
     4 using namespace std;
     5 
     6 int next[maxn];
     7 double d[maxn];
     8 int n,m;
     9 
    10 double dp(int i)
    11 {
    12     double &ans = d[i];
    13     if(ans != -1)
    14         return ans;
    15     if(i >= n)
    16         return 0;
    17     int temp = next[i];
    18     while(temp)
    19     {
    20         if(next[temp])
    21             temp = next[temp];
    22         else
    23             break;
    24     }
    25     if(temp)    ans = dp(temp);
    26     else
    27     {
    28         ans = (dp(i + 1) + dp(i + 2) + dp(i + 3) + dp(i + 4)
    29                + dp(i + 5) + dp(i + 6)) / 6 + 1;
    30     }
    31     return ans;
    32 }
    33 
    34 int main()
    35 {
    36     while(scanf("%d%d",&n,&m),n + m)
    37     {
    38         int i,a,b;
    39         for(i = 0;i < maxn;i++)
    40         {
    41             d[i] = -1;
    42             next[i] = 0;
    43         }
    44         for(i = 1;i <= m;i++)
    45         {
    46             scanf("%d%d",&a,&b);
    47             next[a] = b;
    48         }
    49         printf("%.4f\n",dp(0));
    50     }
    51     return 0;
    52 }
  • 相关阅读:
    maven 手工装入本地包
    一个简单的算法--找出样本中出现次数最多的数字
    tortoise Git 访问题
    python 的数值
    python 的运算符
    python3代码运行器
    python 3.X基础
    Python 3.X和Python 2.X的区别
    文件操作
    函数讲解
  • 原文地址:https://www.cnblogs.com/zhexipinnong/p/2734612.html
Copyright © 2011-2022 走看看