ZOJ - 3822 Domination (DP)
来源:互联网 发布:多位bcd编码 c语言加减 编辑:程序博客网 时间:2024/05/20 16:14
Edward is the headmaster of Marjar University. He is enthusiastic about chess and often plays chess with his friends. What's more, he bought a large decorative chessboard with N rows and M columns.
Every day after work, Edward will place a chess piece on a random empty cell. A few days later, he found the chessboard was dominated by the chess pieces. That means there is at least one chess piece in every row. Also, there is at least one chess piece in every column.
"That's interesting!" Edward said. He wants to know the expectation number of days to make an empty chessboard of N × M dominated. Please write a program to help him.
Input
There are multiple test cases. The first line of input contains an integer T indicating the number of test cases. For each test case:
There are only two integers N and M (1 <= N, M <= 50).
Output
For each test case, output the expectation number of days.
Any solution with a relative or absolute error of at most 10-8 will be accepted.
Sample Input
21 32 2
Sample Output
3.0000000000002.666666666667
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;const int maxn = 55;double dp[maxn*maxn][maxn][maxn];int n, m;int main() {int t;scanf("%d", &t);while (t--) {scanf("%d%d", &n, &m);memset(dp, 0, sizeof(dp));dp[1][1][1] = 1.0;for (int i = 1; i < n*m; i++) for (int j = 1; j <= n; j++) for (int k = 1; k <= m; k++)if (dp[i][j][k] > 0) {dp[i+1][j+1][k+1] += dp[i][j][k] * (n - j) * (m - k) / (n * m - i);dp[i+1][j+1][k] += dp[i][j][k] * (n - j) * k / (n * m - i);dp[i+1][j][k+1] += dp[i][j][k] * j * (m - k) / (n * m - i);if (j < n || k < m)dp[i+1][j][k] += dp[i][j][k] * (j * k - i) / (n * m - i);}double ans = 0;for (int i = 1; i <= n * m; i++)ans += dp[i][n][m] * i;printf("%.8lf\n", ans);}return 0;}
- ZOJ - 3822 Domination (DP)
- zoj 3822 Domination(dp)
- ZOJ 3822 Domination(DP)
- ZOJ 3822 Domination (概率DP)
- ZOJ - 3822 Domination (概率DP)
- ZOJ 3822 Domination(概率DP)
- [概率dp] zoj 3822 Domination
- ZOJ 3822 Domination(概率dp)
- [概率dp] ZOJ 3822 Domination
- ZOJ 3822 Domination(概率dp)
- ZOJ 3822 Domination 概率DP
- zoj 3822 Domination 概率dp
- zoj 3822 Domination (概率DP)
- ZOJ - 3822 Domination(概率dp)
- ZOJ 3822 Domination 概率DP
- zoj 3822 Domination 概率dp
- ZOJ 3822 Domination [概率DP]
- zoj 3822 Domination 概率DP
- 有关学习线段树很好的总结
- Android学习要点记录
- Leetcode--Restore IP Addresses
- JavaScript学习笔记:onload加载事件与onunload事件
- sizeof()那点儿事儿
- ZOJ - 3822 Domination (DP)
- ZOJ 3822 Domination(2014牡丹江Regional D题)
- 虽然年龄大了,也要从头学起 MVC JQuery的Ajax应用测试(一)
- 关于Label::createWithBMFont中资源文件使用的坑爹问题解决方案
- Java方法重载后的匹配规则的一个例子
- hdu2524 -矩形A+B
- NoSQL生态系统
- c语言结构体
- css