zoukankan      html  css  js  c++  java
  • Help Me Escape

     题目: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4808

    题意:
    
    师傅被妖怪抓走了。有n个妖怪,每个妖怪有一个固定的战斗力c[],师傅也有一个初始战斗力f0。
    每天,师傅会随机选择一个妖怪决斗,如果打得赢ft>c[],就可以逃出去,逃出去要t[]天,毕竟超人不会飞;
    否则,师傅会不甘心,当天他会拿出秘籍练功,将自己变强,f(t+1)=f(t)+c[],第二天寻找下一次机会。
    问师傅能够逃脱可怕的妖怪,继续追求去印度吃手抓饼的梦想的天数的数学期望day。


    解:
    设dp[F]是战斗力为F时,逃离的天数期望。(答案是dp[f])。则有公式。
    
    dp[F]= Σ 1/n * t[i]              ,F>c[[i]
    
               +∑ 1/n * dp[F+c[i]]   ,F<=c[i]

    ( 经典 题 好像)


    #include<bits/stdc++.h>
    using namespace std;
    int n,m,i,sum,j,a[100000];
    double t1,f[100000];
    int main(){
        t1=(1+sqrt(5))*0.5;
        while(~scanf("%d%d",&n,&m)){
            sum=0;
            memset(f,0,sizeof(f));
        for(i=1;i<=n;i++){
            scanf("%d",&a[i]);
            sum=max(sum,a[i]);
        }
        for(i=sum*2;i>=m;i--){
            for(j=1;j<=n;j++){
                if(i>a[j])f[i]+=(int)(t1*a[j]*a[j]);
                 else f[i]+=f[i+a[j]]+1;
            }
            f[i]/=n;///遇到妖怪的 概率 是 1 / n 
        }
        printf("%.3f
    ",f[m]);}
    }
    View Code




    一步一步,永不停息
  • 相关阅读:
    JavaEE思维导图
    JAVA EE期末项目-企业论坛
    RPC
    SQL、HQL、JPQL、CQL的对比
    eqauls和hashCode的对比
    关于JSON
    JavaServer Faces标准请求/响应周期
    Applets
    Ajax
    Async分析
  • 原文地址:https://www.cnblogs.com/Willems/p/10941292.html
Copyright © 2011-2022 走看看