zoukankan      html  css  js  c++  java
  • 【HDOJ】【4405】Aeroplane chess飞行棋

    概率DP/数学期望

      kuangbin总结中的第4题

      啊还是求期望嘛……(话说Aeroplane chess这个翻译怎么有种chinglish的赶脚……)

      好像有点感觉了……

      首先不考虑直飞的情况:

        f[i]表示从第 i 格到end的期望掷骰子次数,那明显就是从f[i+1]~f[i+6]各1/6的概率(系数) 转移过来啦~

      那直飞呢?

        so easy,f[i]=f[fly[i]]即可,其中fly[i]表示从第 i 格飞到的格子。当然直飞就不用再考虑1/6的掷骰子情况了……

      从n-1往0逆推即可

    P.S.多组数据记得清空数组哦~不要偷懒……那样容易出错的……

     1 //HDOJ 4405
     2 #include<cmath>
     3 #include<vector>
     4 #include<cstdio>
     5 #include<cstring>
     6 #include<cstdlib>
     7 #include<iostream>
     8 #include<algorithm>
     9 #define rep(i,n) for(int i=0;i<n;++i)
    10 #define F(i,j,n) for(int i=j;i<=n;++i)
    11 #define D(i,j,n) for(int i=j;i>=n;--i)
    12 #define pb push_back
    13 using namespace std;
    14 int getint(){
    15     int v=0,sign=1; char ch=getchar();
    16     while(!isdigit(ch)) {if(ch=='-') sign=-1; ch=getchar();}
    17     while(isdigit(ch))  {v=v*10+ch-'0'; ch=getchar();}
    18     return v*sign;
    19 }
    20 const int N=1e5+10,INF=~0u>>2;
    21 /*******************template********************/
    22 const double p0=1.0/6;
    23 double f[N];
    24 int fly[N];
    25 
    26 int main(){
    27 //    freopen("input.txt","r",stdin);
    28     int n,m,x,y;
    29     while(scanf("%d%d",&n,&m)!=EOF && n){
    30         memset(fly,0,sizeof fly);
    31         memset(f,0,sizeof f);
    32         F(i,0,n+6) fly[i]=0;
    33         F(i,1,m){
    34             x=getint(); y=getint();
    35             fly[x]=y;
    36         }
    37         D(i,n-1,0){
    38             f[i]=1;
    39             if (fly[i]) f[i]=f[fly[i]];
    40             else F(j,1,6) f[i]+=p0*f[i+j];
    41         }
    42         printf("%.4lf
    ",f[0]);
    43     }
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    extjs tabpanel动态添加panel
    日期处理工具类
    POI导入导出Excel
    生成流水号
    计划排产系统
    3Dflash 图表xml数据封装
    使用GZIP动态压缩Extjs
    码农行业的薪水一览,如有雷同纯属巧合
    我的技术从今天开始开通啦~~~
    关于腾讯QQ
  • 原文地址:https://www.cnblogs.com/Tunix/p/4300690.html
Copyright © 2011-2022 走看看