zoukankan      html  css  js  c++  java
  • Domination

    题目链接

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 inline ll read(){
     5     int x = 0, f = 1; char ch = getchar();
     6     while(ch > '9' || ch < '0'){if (ch == '-') f = -1; ch = getchar();}
     7     while(ch >= '0' && ch <= '9'){ x = x*10+ch-'0'; ch = getchar();}
     8     return x*f;
     9 }
    10 
    11 /************************************************************************/
    12 
    13 const int maxn = 50;
    14 int n, m;
    15 double dp[maxn*maxn*2][maxn][maxn];
    16 
    17 int main(){
    18     int t; 
    19     t = read();
    20     while(t--){
    21         n = read(); m = read();
    22         memset(dp, 0, sizeof(dp));
    23         dp[1][1][1] = 1;
    24         for(int i = 1;i <= n*m;i++){
    25             for(int j = 1;j <= n;j++){
    26                 for(int k = 1;k <= m;k++){
    27                     if(dp[i][j][k]){
    28                         dp[i+1][j+1][k] += dp[i][j][k] * (n-j)*k/(1.0*(n*m-i));
    29                         dp[i+1][j][k+1] += dp[i][j][k] * (m-k)*j/(1.0*(n*m-i));
    30                         dp[i+1][j+1][k+1] += dp[i][j][k] * (n-j)*(m-k)/(1.0*(n*m-i));
    31                         if(j < n || k < m)
    32                             dp[i+1][j][k] += dp[i][j][k] * (j*k-i)/(1.0*(n*m-i));
    33                     } 
    34                 }
    35             }
    36         }
    37         double ans = 0.0;
    38         for(int i = 1;i <= n*m;i++){
    39             ans += dp[i][n][m]*i;
    40         }
    41         printf("%.12lf
    ", ans);
    42     }
    43     return 0;
    44 }
  • 相关阅读:
    Runner站立会议07
    Runner站立会议06
    “记计帐”需求分析
    Runner站立会议03
    Runner站立会议02
    2016年秋季个人阅读计划
    梦断代码阅读笔记03
    进度条15
    梦断代码阅读笔记02
    软件工程概论课程总结
  • 原文地址:https://www.cnblogs.com/ouyang_wsgwz/p/9766518.html
Copyright © 2011-2022 走看看