ZOJ 3822 Domination(概率dp)
一个n行m列的棋盘,每天可以放一个棋子,问要使得棋盘的每行每列都至少有一个棋子 需要的放棋子天数的期望。
dp[i][j][k]表示用了k天棋子共能占领棋盘的i行j列的概率。
他的放置策略是,每放一次,就会有四种可能
1)增加一行一列
2)增加一行
3)增加一列
4)不变
所以他放置的概率就可以求出来,每次放下的概率就是当前能放的点除以总的空的点数。
最后统计期望的时候需要统计在第k天刚好符合占满n行m列的概率,就是dp[i][j][k]-dp[i][j][k-1]
#include <cstdio>
#include <cstring>
#include <algorithm> using namespace std;
const int maxn = ;
double dp[maxn][maxn][maxn*maxn]; int main()
{
int T;
scanf("%d", &T);
while (T--)
{
int n, m;
scanf("%d %d", &n, &m);
int sum = n * m;
for (int i = ; i <= n; i++)
for (int j = ; j <= m; j++)
for (int k = ; k <= sum; k++)
dp[i][j][k] = ;
dp[][][] = 1.0;
for (int k = ; k <= sum; k++)
{
for (int i = ; i <= n; i++)
{
for (int j = ; j <= m; j++)
{
dp[i][j][k] += dp[i][j][k - ] * ((i * j - k + ) * 1.0 / (sum - k + ));//新添加的位置没有新增加行和列,所以他的概率就是(还剩下多少个符合不增加行和列能填的格子)/总的能填的格子
dp[i][j][k] += dp[i - ][j][k - ] * ((n - i + ) * j * 1.0 / (sum - k + ));//同理增加行不增加列
dp[i][j][k] += dp[i][j - ][k - ] * (i * (m - j + ) * 1.0 / (sum - k + ));//增加列不增加行
dp[i][j][k] += dp[i - ][j - ][k - ] * ((n - i + ) * (m - j + ) * 1.0 / (sum - k + ));//增加行和列
}
}
}
double ans = ;
for (int k = ; k <= sum; k++)
ans += (dp[n][m][k] - dp[n][m][k - ]) * k;//第k天刚好填满n和m所以就是dp[n][m][k] - dp[n][m][k - 1]
printf("%.10f\n", ans); } return ;
}
ZOJ 3822 Domination(概率dp)的更多相关文章
- ZOJ 3822 Domination 概率dp 难度:0
Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Judge Edward is the headm ...
- zoj 3822 Domination 概率dp 2014牡丹江站D题
Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Judge Edward is the headm ...
- zoj 3822 Domination (概率dp 天数期望)
题目链接 参考博客:http://blog.csdn.net/napoleon_acm/article/details/40020297 题意:给定n*m的空棋盘 每一次在上面选择一个空的位置放置一枚 ...
- ZOJ 3822 Domination(概率dp 牡丹江现场赛)
题目链接:problemId=5376">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5376 Edward ...
- zoj 3822(概率dp)
ZOJ Problem Set - 3822 Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Ju ...
- ZOJ 3822 Domination 期望dp
Domination Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.zju.edu.cn/onlinejudge/showProblem ...
- zoj 3822 Domination (可能性DP)
Domination Time Limit: 8 Seconds Memory Limit: 131072 KB Special Judge Edward is the headm ...
- ZOJ - 3822 Domination (DP)
Edward is the headmaster of Marjar University. He is enthusiastic about chess and often plays chess ...
- zoj 3822 Domination(dp)
题目链接:zoj 3822 Domination 题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望. 解题思路:大白书上概率那一张有一 ...
随机推荐
- java学习之 垃圾回收
垃圾回收器始终以一个较低优先级的后台进程进行垃圾的回收工作,这样不会影响程序的正常工作. 通常只有当内存到达用尽的边缘而程序需要分配新的内存空间时,垃圾回收器才会执行. 垃圾回收的条件:1,垃圾回收器 ...
- 【算法】简单选择排序 O(n^2) 不稳定的 C语言
简单选择排序 一.算法描述 假设序列中有N个元素: 第1趟找到第1到N个元素之间最小的一个,与第1个元素进行交换 第2趟找到第2到N个元素之间最小的一个,与第2个元素进行交换 第3趟找到第3到N个元素 ...
- Windows开发技术的历史
原文地址:http://www.kuqin.com/windows/20090315/40172.html Windows已经有22年的历史,这22年来,微软官方主力推行的编程语言与API有四个分水岭 ...
- GNU MAKE指南
GNU make 指南 翻译: 哈少 译者按: 本文是一篇介绍 GNU Make 的文章,读完后读者应该基本掌握了 make 的用法.而 make 是所有想在 Unix (当然也包括 Linux )系 ...
- 非主窗体在任务栏显示按钮(简单好用)good
非主窗体在任务栏显示按钮 type TForm2 = class(TForm) private { Private declarations } public { Public declaration ...
- Winform 隐藏程序窗口
internal class HideOnStartupApplicationContext : ApplicationContext { private Form mainFormInternal; ...
- netstat详解
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Membershi ...
- Instant Complexity(模拟,递归)
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1535 Accepted: 529 Description Analyz ...
- BZOJ1636: [Usaco2007 Jan]Balanced Lineup
1636: [Usaco2007 Jan]Balanced Lineup Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 476 Solved: 345[ ...
- 数据结构(线段树):BZOJ 1018: [SHOI2008]堵塞的交通traffic
1018: [SHOI2008]堵塞的交通traffic Time Limit: 3 Sec Memory Limit: 162 MBSubmit: 2638 Solved: 864 Descri ...