zoukankan      html  css  js  c++  java
  • LightOJ 1265 Island of Survival

    期望,$dp$。

    设$dp[i][j]$表示还剩下$i$只老虎,$j$只鹿的情况下,到达目标状态的期望概率。$dp[0][X]$均为$1$。因为人碰到鹿可以选择杀或者不杀,两种情况都算一下,取个$max$即可。

    #pragma comment(linker, "/STACK:1024000000,1024000000")
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<vector>
    #include<map>
    #include<set>
    #include<queue>
    #include<stack>
    #include<iostream>
    using namespace std;
    typedef long long LL;
    const double pi=acos(-1.0),eps=1e-6;
    void File()
    {
        freopen("D:\in.txt","r",stdin);
        freopen("D:\out.txt","w",stdout);
    }
    template <class T>
    inline void read(T &x)
    {
        char c = getchar();
        x = 0;
        while(!isdigit(c)) c = getchar();
        while(isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); }
    }
    
    double dp[1005][1005];
    
    int t,d;
    
    int main()
    {
        int T; scanf("%d",&T); int cas=1;
        while(T--)
        {
            scanf("%d%d",&t,&d);
            memset(dp,0,sizeof dp);
            for(int i=0;i<=d;i++) dp[0][i]=1;
            for(int i=1;i<=t;i++)
            {
                for(int j=0;j<=d;j++)
                {
                    double ans1=0,ans2=0;
                    if(j>=1) ans1+=1.0*i*j*dp[i][j-1];
                    if(j>=1) ans1+=1.0*j*dp[i][j-1];
                    if(i>=2) ans1+=1.0*i*(i-1)/2*dp[i-2][j];
    
                    ans1=ans1/((i+j+1)*(i+j)/2-j*(j-1)/2);
    
                    if(j>=1) ans2+=1.0*i*j*dp[i][j-1];
                    if(i>=2) ans2+=1.0*i*(i-1)/2*dp[i-2][j];
    
                    ans2=ans2/((i+j+1)*(i+j)/2-j*(j-1)/2-j);
    
                    dp[i][j]=max(ans1,ans2);
                }
            }
            printf("Case %d: %lf
    ",cas++,dp[t][d]);
        }
        return 0;
    }
  • 相关阅读:
    retain,copy,mutableCopy的区别
    xcode 添加mainWindow.xib
    ios 协议代理
    mysql基础
    mysql常用语句(转)
    mysql的13个使用技巧(转)
    mysql性能优化教程(转)
    mysql学习资源(转)
    find命令详解(转)
    vim基础操作(转)----附vim壁纸
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6296937.html
Copyright © 2011-2022 走看看