【ZOJ】3822 Domination_天涯浪子_新浪博客
【题目】http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3822
【报告】
概率DP问题。
把所有的有格子的行列集中到左上角,很容易可以得出状态转移方程。
令dp[k ,i ,j]表示放了k个棋子,集中在[1,1]-[i,j]的概率。
那么dp[k, i, j]=Σ
dp[k-1, i, j] * (i*j-k+1) / (n*m-k+1) {i!=n&&j!=m} // 放在左上角的概率
dp[k-1, i-1, j] * (n-i+1)*j / (n*m-k+1) {i>1} // 放在左下角,矩形向下扩张
dp[k-1, i, j-1] * (n-j+1)*i / (n*m-k+1) {j>1} // 放在右上角
dp[k-1, i-1, j-1] *(n-j+1)*(n-i+1) / (n*m-k+1) {i>1&&j>1} // 放在右下角
边界条件:dp[1, 1, 1]=1,
dp[k, i, j]=0 k>i*j
还有一些细节问题,看程序。
【程序】
#include
#include
#include
#include
#include
#include
using namespace std;
const int N = 50;
double dp[N*N+1][N+1][N+1];
int main()
{
int T;
scanf("%d",&T);
while (T--)
{
int n,m;
scanf("%d%d",&n,&m);
memset(dp,0,sizeof(dp));
dp[1][1][1]=1;
for (int k=2;k<=n*m;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
{
dp[k][i][j]=0;
if (k>i*j) continue;
if (k<=i*j&&(i!=n||j!=m))
dp[k][i][j]+=dp[k-1][i][j]*((i*j-k+1.0)/(n*m-k+1));
if (i>1&&j>1)
dp[k][i][j]+=dp[k-1][i-1][j-1]*(((n-i+1.0)*(m-j+1))/(n*m-k+1));
if (i>1)
【ZOJ】3822 Domination_天涯浪子_新浪博客相关推荐
- 【ZOJ】3829 Known Notation_天涯浪子_新浪博客
[题目]http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5383 [报告] 很明显,*是不用加的,只用加数字就行了.数字最多加 符 ...
- 【HDOJ】1022 Train Problem I_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1022 [报告] 模拟,直接模拟一个栈的运行就行了. [程序] // Task: 1022 Train P ...
- 【HDOJ】1003 Max Sum_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1003 [报告] 既然是子区间加和问题,可以用减法来处理.比如求[5..10]的和,可以直接用[1..10 ...
- 【HDOJ】4768 Flyer_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=4768 [报告] 题目中已经说了,保证最多出现一个奇数,所以可以用异或的想法.把所有的数异或起来,如果最后 ...
- 【HDOJ】4699 Editor_天涯浪子_新浪博客
[题目] http://acm.hdu.edu.cn/showproblem.php?pid=4699 [报告] 模拟题吧,本身不是很难. 最初的想法是用Splay tree写,然后疯掉了.苏牛说2B ...
- 【HDOJ】4704 Sum_天涯浪子_新浪博客
[题目] http://acm.hdu.edu.cn/showproblem.php?pid=4704 [报告] S(K)显然就是N的K正整数划分数.所以SUM{S(K),1<=K<=N} ...
- 【HDOJ】1015 Safecracker_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1015 [报告] 题目写的很长,忽略一系列废话,题意就是求一个方程v - w^2 + x^3 - y^4 ...
- 【HDOJ】1020 Encoding_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=1020 [报告] 题意,是对字符串进行压缩,对字符串中连续字符变成数字+字符,比如BB变成2B,CCC变成 ...
- 【HDOJ】4602 Partition_天涯浪子_新浪博客
[题目]http://acm.hdu.edu.cn/showproblem.php?pid=4602 [报告] 直接贴上标程解题报告:(虽然有些纠结,试一下就弄通了..) Problem C. Par ...
最新文章
- 项目学生:带有Jersey的Web服务服务器
- 对于Algorand的介绍
- ORACLE HANDBOOK系列之六:ODP.NET与复杂的PL/SQL数据类型(Using ODP.NET To Deal With Complex PLSQL Data Types)...
- 世界定级 企业即时通讯软件
- 用Veritas制作MSI文件,Active Directory系列之二十四
- Vs 中关于项目中的某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
- c语言中形参和实参的区别
- html动感相册怎么转成视频,ps把相片或图片制作成一个动感的相册视频效果
- 计算机c盘删除的文件怎么找回,C盘空间不足怎么办 删除C盘文件教程【详解】...
- CentOS 识别NTFS格式U盘
- CTF·Crypto·古典密码大全
- 什么蓝牙耳机好用又不贵?好用不贵的蓝牙耳机推荐
- 开源社与 Dev.Together 2022
- UI线程与子线程通信示例 日记
- 【LittleVGL】stm32f412-discovery探索板-ft6x06驱动问题
- nginx反向代理websocket 小坑
- Linux下stream内存带宽测试参数和示例详解附源码(总结)
- 越权漏洞简介及靶场演示
- 《 罗宇庭蜕变幸福路》分享做回男人的种种心酸
- 当贝X3对比明基I750哪个值得看,当贝X3功能丰富值得选