一个n行m列的棋盘,每次能够放一个棋子。问要使得棋盘的每行每列都至少有一个棋子 须要的放棋子次数的期望。

dp[i][j][k]表示用了k个棋子共能占据棋盘的i行j列的概率。

那么对于每一颗棋子,在现有的棋盘上,它可能有四种影响:新占了一行,新占了一列,既占了新的一行又占了新的一列。无影响。

对于每一种情况。dp[i][j][k]=原始状态的概率×选到这种位置的概率

最后算答案的时候注意到,题目问的是到第k个刚好放完n行m列。也就是最后一个棋子一定是有作用的,

所以用dp[i][j][k]-dp[i][j][k-1]得到是第k个棋子恰好使得每行每列都占据的概率。

  1. #include<cstdio>
  2. #include<cstring>
  3. double dp[55][55][2550];
  4. int n,m;
  5. int main()
  6. {
  7. int T,i,j,k;
  8. scanf("%d",&T);
  9. while(T--)
  10. {
  11. scanf("%d%d",&n,&m);
  12. int sum=n*m;
  13. for(i=0;i<=n;i++)
  14. for(j=0;j<=m;j++)
  15. for(k=0;k<=sum;k++) dp[i][j][k]=0;
  16. dp[0][0][0]=1.0;
  17. for(k=1;k<=sum;k++)
  18. for(i=1;i<=n;i++)
  19. for(j=1;j<=m;j++)
  20. {
  21. dp[i][j][k]+=(dp[i][j][k-1]*(i*j-k+1)*1.0/(sum-k+1));//加入的位置没有新增新行或新列
  22. dp[i][j][k]+=(dp[i-1][j][k-1]*((n-i+1)*j)*1.0/(sum-k+1));//添加行不添加列
  23. dp[i][j][k]+=(dp[i][j-1][k-1]*(m-j+1)*i*1.0/(sum-k+1));//添加列不添加行
  24. dp[i][j][k]+=(dp[i-1][j-1][k-1]*(n-i+1)*(m-j+1)*1.0/(sum-k+1));//既添加列也添加行
  25. // printf("i:%d j;%d k;%d dp:%lf\n",i,j,k,dp[i][j][k]);
  26. }
  27. double ans=0;
  28. for(k=1;k<=sum;k++) ans+=(dp[n][m][k]-dp[n][m][k-1])*k;
  29. printf("%.10lf\n",ans);
  30. }
  31. return 0;
  32. }

zoj3822 Domination 概率dp --- 2014 ACM-ICPC Asia Mudanjiang Regional Contest的更多相关文章

  1. HDU 5000 2014 ACM/ICPC Asia Regional Anshan Online DP

    Clone Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/65536K (Java/Other) Total Submiss ...

  2. hdu 5016 点分治(2014 ACM/ICPC Asia Regional Xi'an Online)

    Mart Master II Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  3. The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)

    The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 题目链接 没去现场.做的网络同步赛.感觉还能够,搞了6题 A:这是签到题,对于A堆除掉.假设没剩余 ...

  4. The 2014 ACM-ICPC Asia Mudanjiang Regional Contest

    The 2014 ACM-ICPC Asia Mudanjiang Regional Contest A.Average Score B.Building Fire Stations C.Card G ...

  5. 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)

    2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...

  6. ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków

    ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...

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

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

  8. HDU 5000 Clone(离散数学+DP)(2014 ACM/ICPC Asia Regional Anshan Online)

    Problem Description After eating food from Chernobyl, DRD got a super power: he could clone himself ...

  9. 2014 ACM/ICPC Asia Regional Shanghai Online

    Tree http://acm.hdu.edu.cn/showproblem.php?pid=5044 树链剖分,区间更新的时候要用on的左++右--的标记方法,要手动扩栈,用c++交,综合以上的条件 ...

随机推荐

  1. BZOJ 4488/4052 gcd

    思路: 一开始 我是想 对于固定的左端点 从左到右 最多有 log种取值  且单调递减  那不妨倍增预处理+二分GCD在哪变了.. 复杂度O(nlog^2n) gcd最多log种取值.. 好了我们可以 ...

  2. POJ 2418 简单trie树

    Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 21845 Accepted: 8551 De ...

  3. D - Garden

    Problem description Luba thinks about watering her garden. The garden can be represented as a segmen ...

  4. 拖入浏览器读取文件demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. TCP/IP,必知必会的

    文章目录 前言 TCP/IP模型 数据链路层 网络层 ping Traceroute TCP/UDP DNS TCP连接的建立与终止 TCP流量控制 TCP拥塞控制 0 前言 本文整理了一些TCP/I ...

  6. 备份-泛函编程(23)-泛函数据类型-Monad

    泛函编程(23)-泛函数据类型-Monad http://www.cnblogs.com/tiger-xc/p/4461807.html https://blog.csdn.net/samsai100 ...

  7. POST请求成功,但接口返回数据不正确

    事件:使用Jmeter做APP的搜索接口测试,请求成功了,但无论keyword是什么“内容”(这里的内容是带引号的哦),接口返回的内容都是:未匹配到搜索结果 排查问题: keyword=“世界” st ...

  8. react-native 横向滚动的商品展示

    在app中会有这种页面 像这样商品是横向的,而且要滚动,思路是利用 ScrollView 横向的滚动 思路: (a): 横向滚动的整体作为一个组件  ShopCenter {/*** 横向滚动 *** ...

  9. 数据结构实验病毒感染检测问题(C++)

    医学研究者最近发现了某些新病毒,通过对这些病毒的分析,得知他们的DNA序列都是环状的.现在研究者已收集了大量的病毒DNA和人的DNA数据,想快速检测出这些人是否感染了相应的病毒.为了方便研究,研究者将 ...

  10. NOIP2012 DAY2 T2借教室

    题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...