• ZOJ 3822 Domination


    期望$dp$。

    设$dp[i][j][k]$表示已经有$i$行有棋子,有$j$列有棋子,并且放了$k$个棋子的状态下到达目标状态的期望天数。

    $dp[n][m][max(n,m)..n*m]$全部置为$0$。

    $dp[i][j][k] = dp[i][j][k+1]*(i*j-k)/(n*m-k)+dp[i+1][j][k+1]*(n-i)*j/(n*m-k)+dp[i][j+1][k+1]*i*(m-j)/(n*m-k)+dp[i+1][j+1][k+1]*(n-i)*(m-j)/(n*m-k)+1$。

    最后$dp[0][0][0]$就是答案。

    #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<ctime>
    #include<iostream>
    using namespace std;
    typedef long long LL;
    const double pi=acos(-1.0);
    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();
        }
    }
    
    int n,m;
    double dp[55][55][2600];
    
    int main()
    {
        int T; scanf("%d",&T);
        while(T--)
        {
            scanf("%d%d",&n,&m);
            memset(dp,0,sizeof dp);
    
            for(int i=n;i>=0;i--)
            {
                for(int j=m;j>=0;j--)
                {
                    for(int k=i*j;k>=max(i,j);k--)
                    {
                        if(i==n&&j==m) continue;
    
                        dp[i][j][k] = dp[i][j][k+1]*(i*j-k)/(n*m-k)
                                    + dp[i+1][j][k+1]*(n-i)*j/(n*m-k)
                                    + dp[i][j+1][k+1]*i*(m-j)/(n*m-k)
                                    + dp[i+1][j+1][k+1]*(n-i)*(m-j)/(n*m-k)
                                    +1;
    
                    }
                }
            }
    
            printf("%.8f
    ",dp[0][0][0]);
        }
        return 0;
    }
  • 相关阅读:
    HTML DOM prompt() 方法
    Zen cart前台英文后台中文(Zen cart后台取消多语言输入的方法)
    Zencart模板结构和设计详解
    给zencart添加一个fckeditor编辑器
    mssql重置表
    Guid与id区别
    zencart五款是必备的插件
    C#使用HTTP头检测网络资源是否有效
    OA系统权限管理设计方案
    C#获取网页http头的方法(附代码)
  • 原文地址:https://www.cnblogs.com/zufezzt/p/6403544.html
Copyright © 2020-2023  润新知