主题链接:点击打开链接

题意:

要在一条直线上摆多米诺骨牌。

输入n, l, r

要摆n张排,每次摆下去向左倒的概率是l, 向右倒的概率是r

能够採取最优策略。即能够中间放一段。然后左右两边放一段等,摆放顺序随意。

问:在最佳策略下要摆成n张牌的期望次数。

思路:

点击打开链接

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <queue>
  5. #include <algorithm>
  6. #include <map>
  7. #include <cmath>
  8. template <class T>
  9. inline bool rd(T &ret) {
  10. char c; int sgn;
  11. if(c=getchar(),c==EOF) return 0;
  12. while(c!='-'&&(c<'0'||c>'9')) c=getchar();
  13. sgn=(c=='-')?-1:1;
  14. ret=(c=='-')?
  15.  
  16. 0:(c-'0');
  17. while(c=getchar(),c>='0'&&c<='9') ret=ret*10+(c-'0');
  18. ret*=sgn;
  19. return 1;
  20. }
  21. template <class T>
  22. inline void pt(T x) {
  23. if (x <0) {
  24. putchar('-');
  25. x = -x;
  26. }
  27. if(x>9) pt(x/10);
  28. putchar(x%10+'0');
  29. }
  30. using namespace std;
  31. typedef long long ll;
  32. #define N 2002
  33. const ll mod = 1e9+7;
  34.  
  35. int n;
  36. double l, r;
  37. double dp[N];
  38. double solve(){
  39. dp[0] = 0;
  40. dp[1] = 1.0/(1.0-l-r);
  41. for(int i = 2; i <= n; i++)
  42. {
  43. dp[i] = 1e18;
  44. for(int j = 0; j < i; j++)
  45. {
  46. int L = j, R = i-j-1;
  47. double x = (1+ dp[L] + dp[R] -dp[L]*r -dp[R]*l) / (1-l-r);
  48. dp[i] = min(dp[i], x);
  49. }
  50. }
  51. return dp[n];
  52. }
  53. int main() {
  54. while(cin>>n>>l>>r, n){
  55. printf("%.2f\n", solve());
  56. }
  57. return 0;
  58. }

版权声明:本文博客原创文章。博客,未经同意,不得转载。

UVA 10529 Dumb Bones 可能性dp 需求预期的更多相关文章

  1. UVA 10529 - Dumb Bones (概率dp)

    题目描述 You are trying to set up a straight line of dominos, standing on end, to be pushed over later f ...

  2. UVA 10529 - Dumb Bones(概率+区间dp)

    UVA 10529 - Dumb Bones option=com_onlinejudge&Itemid=8&category=518&page=show_problem&am ...

  3. HDU4405-Aeroplane chess(可能性DP需求预期)

    Aeroplane chess Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. [UVA 10529]Dumb Bones

    题面在这里 题意 放\(n\)个相连的骨牌,每次放的时候有\(pl\)的概率往左倒,有\(pr\)的概率往右倒,骨牌倒的时候可能会打翻左边相邻或者右边相邻的骨牌,并引起连锁反应直到最后一个骨牌旁边没有 ...

  5. #11 UVA 10529 Dumb Bones

    题意: 放一堆排,每放一张,有pa的概率让左边的全倒,有pb的概率让右边全倒 问在最优策略下,最少要放几张才能摆放出n张 1<=n<=1000 题解: 这题应该还是很经典的 首先是期望部分 ...

  6. Dumb Bones UVA - 10529[多米诺重构]

    Dumb Bones UVA - 10529   来自绿书p176  题意 你试图把一些多米诺骨牌排成直线,然后推倒它们.但是如果你在放骨牌的时候不小心把刚放的骨牌碰倒了,它就会把相临的一串骨牌全都碰 ...

  7. UVA10529 Dumb Bones

    UVA10529 Dumb Bones go to solution 设$f[i]$表示叠$i$个的骨牌的期望 $O(n)$做法 #include<iostream> #include&l ...

  8. UVA.10066 The Twin Towers (DP LCS)

    UVA.10066 The Twin Towers (DP LCS) 题意分析 有2座塔,分别由不同长度的石块组成.现在要求移走一些石块,使得这2座塔的高度相同,求高度最大是多少. 问题的实质可以转化 ...

  9. [AC自己主动机+可能性dp] hdu 3689 Infinite monkey theorem

    意甲冠军: 给n快报,和m频率. 然后进入n字母出现的概率 然后给目标字符串str 然后问m概率倍的目标字符串是敲数量. 思维: AC自己主动机+可能性dp简单的问题. 首先建立trie图,然后就是状 ...

随机推荐

  1. css 背景色渐变

    background:rgba(0, 0, 0, 0) linear-gradient(to bottom, #eff5ff 0px, #e0ecff 20%) repeat-x scroll 0 0 ...

  2. 全栈project师的毁与誉

    全栈(Full Stack)project师.也能够叫全端project师,不管是前端知识,还是后端架构你都要了解.甚至有些调皮的程序猿这样理解全栈project师:全栈project师 = 屌丝战斗 ...

  3. 【HDU】5248-序列变换(贪心+二分)

    二分枚举长度改变的长度即可了 #include<cstdio> #include<cstring> #include<algorithm> using namesp ...

  4. python学习笔记--for循环

    推荐一个学习语言的网站:http://www.codecademy.com 有教程,可以边学边写,蛮不错的. for循环: 1.for loops allow us to iterate throug ...

  5. 修改linux系统时间、rtc时间以及时间同步

    修改linux的系统时间用date -s [MMDDhhmm[[CC]YY][.ss]] 但是系统重启就会从新和硬件时钟同步. 要想永久修改系统时间,就需要如下命令:hwclock hwclock - ...

  6. 搭建solr单机版

    solr单机版的搭建 一.solr单机版的搭建 1.运行环境 solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr默认提供Jetty(ja),本教va写 ...

  7. Wind River Linux 6 Security Profile

    2692407267@qq.com,很多其它内容请关注http://user.qzone.qq.com/2692407267 Wind River Linux 6 Security Profile

  8. jQuery Ajax: $.post请求示例

    jQuery Ajax: $.post请求示例 leyangjun.html页面 <html> <head> <meta http-equiv="Content ...

  9. CentOS6.5解压缩文件.tar.gz .war .zip

    拉开拉链.tar.gz文件: tar -zxvf web.tar.gz tar将文件解压缩到一个指定的文件夹. 拉开拉链.war .zip文件到指定的文件夹: unzip web.war -d web ...

  10. WPF 3D: MeshGeometry3D纹理坐标的正确定义

    原文 WPF 3D: MeshGeometry3D纹理坐标的正确定义 为了使基于2D的纹理显示在3D对象中,我们必须定义3D Mesh对象的纹理贴图坐标.在WPF中,此项功能则通过MeshGeomet ...