题意:

一个棋盘假设每行每列都有棋子那么这个棋盘达到目标状态  如今随机放棋子  问达到目标状态的期望步数

思路:

用概率来做  计算第k步达到目标状态的概率  进而求期望  概率计算方法就是dp  dp[k][i][j]表示第k步有i行被覆盖j列被覆盖  转移仅仅有4种  —— 同一时候覆盖行列  覆盖行  覆盖列  不覆盖  状态数50^4  非常easy

代码:

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<string>
  5. #include<algorithm>
  6. #include<map>
  7. #include<set>
  8. #include<vector>
  9. #include<queue>
  10. #include<cstdlib>
  11. #include<ctime>
  12. #include<cmath>
  13. using namespace std;
  14. typedef long long LL;
  15. #define N 55
  16.  
  17. int t, n, m;
  18. double dp[N * N][N][N], ans;
  19.  
  20. int main() {
  21. int i, j, k;
  22. scanf("%d", &t);
  23. while (t--) {
  24. memset(dp, 0, sizeof(dp));
  25. dp[0][0][0] = 1;
  26. ans = 0;
  27. scanf("%d%d", &n, &m);
  28. for (k = 1; k <= n * m; k++) {
  29. for (i = 0; i <= n; i++) {
  30. for (j = 0; j <= m; j++) {
  31. if (i == n && j == m)
  32. break;
  33. int f00 = i * j - k + 1;
  34. int f01 = i * (m - j);
  35. int f10 = (n - i) * j;
  36. int f11 = (n - i) * (m - j);
  37. int sum = n * m - k + 1;
  38. dp[k][i][j] += dp[k - 1][i][j] * f00 / sum;
  39. dp[k][i + 1][j] += dp[k - 1][i][j] * f10 / sum;
  40. dp[k][i][j + 1] += dp[k - 1][i][j] * f01 / sum;
  41. dp[k][i + 1][j + 1] += dp[k - 1][i][j] * f11 / sum;
  42. }
  43. }
  44. ans += dp[k][n][m] * k;
  45. }
  46. printf("%.10f\n", ans);
  47. }
  48. return 0;
  49. }

ZOJ 3822 Domination的更多相关文章

  1. zoj 3822 Domination(dp)

    题目链接:zoj 3822 Domination 题目大意:给定一个N∗M的棋盘,每次任选一个位置放置一枚棋子,直到每行每列上都至少有一枚棋子,问放置棋子个数的期望. 解题思路:大白书上概率那一张有一 ...

  2. ZOJ 3822 Domination 期望dp

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

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

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

  4. zoj 3822 Domination (可能性DP)

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

  5. zoj 3822 Domination(2014牡丹江区域赛D称号)

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

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

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

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

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

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

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

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

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

  10. ZOJ 3822 Domination(概率dp)

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

随机推荐

  1. hdu 5652 India and China Origins 二分+bfs

    题目链接 给一个图, 由01组成, 1不能走. 给q个操作, 每个操作将一个点变为1, 问至少多少个操作之后, 图的上方和下方不联通. 二分操作, 然后bfs判联通就好了. #include < ...

  2. 查询linux发行版本号方法总结

      了解Linux发行版本的版本号是一项非常重要的事情,大多数软件对系统的版本都有要求,发行版本号与软件不匹配,软件将无法安装或者无法使用.这边集合市面上流行的Linux发行版本版本号查询方法.有了这 ...

  3. 如何使Label带有链接??此法感觉有点取巧!!!

    关键代码 /**************************************************************第一行***************************** ...

  4. http://webhelp.esri.com/arcgisexplorer/2500/zh-CN/index.html#add_raster_data.htm

    http://webhelp.esri.com/arcgisexplorer/2500/zh-CN/index.html#add_raster_data.htm

  5. delphi 编码速度提升技能

    效率,是一个永恒的主题. 本文重点强调 delphi ide 中的编码速度技能 一.TForm 窗口重用 当您在写一个管理类软件的时候,有大量的操作窗口,这些窗口会有大量共性.窗口重用就会发挥很大的作 ...

  6. jQuery.fn和jQuery.prototype jquery.extend() jquery.fn.extend()区别介绍

    这里的 jQuery , jQuery.fn , jQuery,fn,init ,jQuery,prototype 都代表什么. 来看下jQuery的源码是怎么样定义的: (function( win ...

  7. poj2521---lose money

    #include <stdio.h> #include <stdlib.h> int rever(int n) { return -n; } int main() { int ...

  8. Swift语法总结(精简版)

    第一部分: 1. Swift简介 2010年的夏天,苹果公司的开发人员Chris Lattne接到了一个特别的任务,为OS X 和iOS平台开发下一代的编程语言,也就是Swift. 苹果公司于2014 ...

  9. windows 7 memcached报failed to install service or service already installed的解决方案

    今天心血来潮捣鼓一下memcache,由于系统是windows 7,我参考了 Windows下安装Memcache 使用memcached for Win32. 在运行memcached.exe -d ...

  10. asp.net 使用my97 datepicker实现前后两个日期的范围界定

    说明:日期选择后,前面的日期小于等后面的日期,后面的日期大于等于前面的日期.点点看就知道了:) - 这里将周末日期不可选.代码如下: <html xmlns="http://www.w ...