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的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望. 解题思路:大白书上概率那一张有一 ...
随机推荐
- C#【数据库】 Excel打开到DataGridView
if (openFileDialog1.ShowDialog() == DialogResult.OK) { Filename = openFileDialog1.FileName; string s ...
- DOMContentLoaded vs onload
http://ie.microsoft.com/testdrive/HTML5/DOMContentLoaded/Default.html The DOMContentLoaded event fir ...
- Asynchronous
http://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/ http://www.cnblogs.com/liuning ...
- Hadoop环境搭建-入门伪分布式配置(Mac OS,0.21.0,Eclipse 3.6)
http://www.linuxidc.com/Linux/2012-10/71900p2.htm http://andy-ghg.iteye.com/blog/1165453 为Mac的MyEcli ...
- 修改css
.content{ height: 100%; } .con{ border: 1px solid #eeeeee; display: inline-block; width:86.8%; ##修改这 ...
- 【Linux】鸟哥的Linux私房菜基础学习篇整理(八)
1. useradd [-u UID] [-g 初始用户组] [-G 次要用户组] [-mM]\ [-c 说明栏] [-d 主文件夹绝对路径] [-r] [-s shell] 用户账号名:新增用户 ...
- Poetize4 创世纪
3037: 创世纪 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 123 Solved: 66[Submit][Status] Description ...
- nginx第三方模块---nginx-sticky-module的使用(基于cookie的会话保持)
目前的项目网站架构中使用了F5和nginx,F5用来做负载均衡,nginx只用作反向代理服务器.最近应客户的要求准备去掉F5,使用软负载.大家都知道nginx抗并发能力强,又可以做负载均衡,而且使用n ...
- (转载)调用ob_end_flush()网页仍旧不能显示有关问题
(转载)http://www.myexception.cn/php/558638.html 调用ob_end_flush()网页仍旧不能显示问题?写了一个简单的demo,理论上调用ob_end_flu ...
- 数据结构:HDU 2993 MAX Average Problem
MAX Average Problem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...