题意:

一个棋盘假设每行每列都有棋子那么这个棋盘达到目标状态  如今随机放棋子  问达到目标状态的期望步数

思路:

用概率来做  计算第k步达到目标状态的概率  进而求期望  概率计算方法就是dp  dp[k][i][j]表示第k步有i行被覆盖j列被覆盖  转移仅仅有4种  —— 同一时候覆盖行列  覆盖行  覆盖列  不覆盖  状态数50^4  非常easy

代码:

#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<vector>
#include<queue>
#include<cstdlib>
#include<ctime>
#include<cmath>
using namespace std;
typedef long long LL;
#define N 55 int t, n, m;
double dp[N * N][N][N], ans; int main() {
int i, j, k;
scanf("%d", &t);
while (t--) {
memset(dp, 0, sizeof(dp));
dp[0][0][0] = 1;
ans = 0;
scanf("%d%d", &n, &m);
for (k = 1; k <= n * m; k++) {
for (i = 0; i <= n; i++) {
for (j = 0; j <= m; j++) {
if (i == n && j == m)
break;
int f00 = i * j - k + 1;
int f01 = i * (m - j);
int f10 = (n - i) * j;
int f11 = (n - i) * (m - j);
int sum = n * m - k + 1;
dp[k][i][j] += dp[k - 1][i][j] * f00 / sum;
dp[k][i + 1][j] += dp[k - 1][i][j] * f10 / sum;
dp[k][i][j + 1] += dp[k - 1][i][j] * f01 / sum;
dp[k][i + 1][j + 1] += dp[k - 1][i][j] * f11 / sum;
}
}
ans += dp[k][n][m] * k;
}
printf("%.10f\n", ans);
}
return 0;
}

ZOJ 3822 Domination的更多相关文章

  1. zoj 3822 Domination(dp)

    题目链接:zoj 3822 Domination 题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望. 解题思路:大白书上概率那一张有一 ...

  2. ZOJ 3822 Domination 期望dp

    Domination Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showProblem ...

  3. zoj 3822 Domination(2014牡丹江区域赛D题) (概率dp)

    3799567 2014-10-14 10:13:59                                                                     Acce ...

  4. zoj 3822 Domination (可能性DP)

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  5. zoj 3822 Domination(2014牡丹江区域赛D称号)

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  6. ZOJ 3822 Domination 概率dp 难度:0

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  7. ZOJ 3822 Domination (三维概率DP)

    E - Domination Time Limit:8000MS     Memory Limit:131072KB     64bit IO Format:%lld & %llu Submi ...

  8. zoj 3822 Domination 概率dp 2014牡丹江站D题

    Domination Time Limit: 8 Seconds      Memory Limit: 131072 KB      Special Judge Edward is the headm ...

  9. zoj 3822 Domination (概率dp 天数期望)

    题目链接 参考博客:http://blog.csdn.net/napoleon_acm/article/details/40020297 题意:给定n*m的空棋盘 每一次在上面选择一个空的位置放置一枚 ...

  10. ZOJ 3822 Domination(概率dp)

    一个n行m列的棋盘,每天可以放一个棋子,问要使得棋盘的每行每列都至少有一个棋子 需要的放棋子天数的期望. dp[i][j][k]表示用了k天棋子共能占领棋盘的i行j列的概率. 他的放置策略是,每放一次 ...

随机推荐

  1. 导出excel java实现

    1.前台页面代码: <tr> <td><input dataId="excel" type="button" value=&quo ...

  2. Oracle EBS-SQL (GL-1):从总帐追溯到接收

    SELECT je_header_id, je_line_num, trx_class_name, trx_type_name, trx_number_displayed, trx_date,comm ...

  3. 清风注解-Swift程序设计语言:Point6~10

    目录索引 清风注解-Swift程序设计语言 Point 6. 输出常量和变量 代码事例: // 输出的内容会在最后换行 println("hello, world") // 输出的 ...

  4. java 集合类说明与区别

    集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMap ...

  5. android-supporting-multiple-devices

    There are a few common questions asked whenever development begins on a new Android app. What assets ...

  6. mac 版本号控制工具SmartSVN7.5.4(破解版)

    SmartSVN7.5.4和破解工具,下载地址:http://download.csdn.net/detail/pearlhuzhu/7407319 操作步骤: 1.在MAC上选中smartsvn-m ...

  7. ItextSharp代码示例

    示例代码目录 示例代码0101. 5 示例代码0102. 7 示例代码0103. 9 示例代码0104. 11 示例代码0105. 13 示例代码0106. 15 示例代码0107. 17 示例代码0 ...

  8. WINFORM中几句程序获取整个屏幕的图片及当前窗口的图片快照

    /// <summary> /// 获取整个屏幕的图片        /// </summary>        /// <returns></returns ...

  9. iis 目录枚举文件枚举解决方案

    1.关闭windows的8.3格式功能. 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem 修改NtfsD ...

  10. CentOS6.4下安装JDK1.6

    首先,切换到jdk安装包所在目录: [rot@centos6 Downloads]# ./jdk-6u45-linux-x64-rpm.bin Unpacking... Checksumming... ...