题目链接:zoj 3822 Domination

题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望。

解题思路:大白书上概率那一张有一道类似的题目,可是由于时间比較久了,还是略微想了一下。

dp[i][j][k]表示i行j列上均有至少一枚棋子,而且消耗k步的概率(k≤i∗j),由于放置在i+1~n上等价与放在i+1行上,同理列也是如此。所以有转移方程:

  • dp[i][j][k+1]+=dp[i][j][k]∗(n−k)(S−k)
  • dp[i+1][j][k+1]+=dp[i][j][k]∗(N−i)∗j(S−k)
  • dp[i][j+1][k+1]+=dp[i][j][k]∗(M−j)∗i(S−k)
  • dp[i+1][j+1][k+1]+=dp[i][j][k]∗(N−i)∗(M−j)(S−k)
  1. #include <cstdio>
  2. #include <cstring>
  3. #include <algorithm>
  4. using namespace std;
  5. const int maxn = 55;
  6. const int maxm = 2505;
  7. int N, M;
  8. double dp[maxn][maxn][maxm];
  9. double solve () {
  10. int S = N * M;
  11. memset(dp, 0, sizeof(dp));
  12. dp[1][1][1] = 1;
  13. for (int i = 1; i <= N; i++) {
  14. for (int j = 1; j <= M; j++) {
  15. int n = i * j;
  16. for (int k = max(i, j); k <= n; k++) {
  17. dp[i][j][k+1] += dp[i][j][k] * (n - k) / (S - k);
  18. dp[i+1][j][k+1] += dp[i][j][k] * (N - i) * j / (S - k);
  19. dp[i][j+1][k+1] += dp[i][j][k] * (M - j) * i / (S - k);
  20. dp[i+1][j+1][k+1] += dp[i][j][k] * (N - i) * (M - j) / (S - k);
  21. }
  22. }
  23. }
  24. /*
  25. for (int i = 1; i <= N; i++) {
  26. for (int j = 1; j <= M; j++) {
  27. printf("%d %d:", i, j);
  28. for (int k = max(i, j); k <= i * j; k++)
  29. printf("%.3lf ", dp[i][j][k]);
  30. printf("\n");
  31. }
  32. }
  33. */
  34. double ans = 0;
  35. for (int i = max(N, M); i <= S; i++)
  36. ans += (dp[N][M][i] - dp[N][M][i-1]) * i;
  37. return ans;
  38. }
  39. int main () {
  40. int cas;
  41. scanf("%d", &cas);
  42. while (scanf("%d%d", &N, &M) == 2) {
  43. printf("%.8lf\n", solve());
  44. }
  45. return 0;
  46. }

zoj 3822 Domination(dp)的更多相关文章

  1. ZOJ 3822 Domination 期望dp

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

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

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

  3. zoj 3822 Domination (可能性DP)

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

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

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

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

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

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

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

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

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

  8. ZOJ 3822 Domination(概率dp)

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

  9. [概率dp] ZOJ 3822 Domination

    题意: 给N×M的棋盘.每天随机找一个没放过棋子的格子放一个棋子 问使得每一个每列都有棋子的天数期望 思路: dp[i][j][k] 代表放了i个棋子占了j行k列 到达目标状态的期望 然后从 dp[n ...

随机推荐

  1. SQL_substr功能测试

    原创作品.从 "深蓝blog" 博客,欢迎转载,请务必注明转载的来源.权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/articl ...

  2. charles抓包

    charles使用教程指南 charles使用教程指南 前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具 ...

  3. LeetCode :: Convert Sorted Array (link list) to Binary Search Tree [tree]

    1.Given an array where elements are sorted in ascending order, convert it to a height balanced BST. ...

  4. IndexReader已解决的问题

    设计和实时搜索的发展,IndexReader饮酒数成为0当调用doClose,和SegmentReader再有一个addCoreClosedListener控制的方法SegmentCoreReader ...

  5. bnu 34982 Beautiful Garden(暴力)

    题目链接:bnu 34982 Beautiful Garden 题目大意:给定一个长度为n的序列,问说最少移动多少点,使得序列成等差序列,点的位置能够为小数. 解题思路:算是纯暴力吧.枚举等差的起始和 ...

  6. Java操作memcached(一)

    Memcached事实上,两次Hash算法    第一次hash算法被用于定位Memcached示例    第二次hash算法是底部HashMap中间hash算法 Hash算法      1.依据余数 ...

  7. Unity3d 导入图像尺寸失真解决方案

    导入到unity3d内的图像被默认长宽变换为满足2^n关系. 例如以下图,我有张图片名称为984plus598表示我尺寸为984*598.拷贝到unity3d中后的大小为1024*512 方法一: 在 ...

  8. linux编curlDLL库so

    转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) curl库是一个非常强大的http开源库.c++里面可以非常方便的和httpserver交互. 近期项目開 ...

  9. UIViewAdditions(一个非常方便的工具类用它)

    我们在project在,改变或多或少控件的坐标-宽度-高度,然后,经常看到你的self.view.frame.origin.x,self.view.frame.size.width.........相 ...

  10. POJ 2411 Mondriaan&#39;s Dream (dp + 减少国家)

    链接:http://poj.org/problem?id=2411 题意:题目描写叙述:用1*2 的矩形通过组合拼成大矩形.求拼成指定的大矩形有几种拼法. 參考博客:http://blog.csdn. ...