zoukankan      html  css  js  c++  java
  • TCO 2014 Round 1C 概率DP

    TCO round 1C的 250 和500 的题目都太脑残了,不说了。

    TCO round 1C 950 一个棋子,每次等概率的向左向右移动,然后走n步之后,期望cover的区域大小?求cover,肯定就是dp[l][r][n], 走了n步之后,左边cover了l,右边cover了r。

    一开始DP没有搞清楚,这个要画一下图就更清楚了。 转移方程就是概率的传递方向.

       1:  double dp[505][505][2];  // l,r,n steps unsed;
       2:  class RedPaint
       3:  {
       4:  public:
       5:      double expectedCells(int N)
       6:      {
       7:          memset(dp,0,sizeof(dp));
       8:          // the probability of the configuration.
       9:          dp[0][0][0] = 1.0;
      10:          dp[0][1][1] = 0.5;
      11:          dp[1][0][1] = 0.5;
      12:          for(int n = 2; n<N+1; n++)
      13:          {
      14:              for(int i=0; i<N+1; i++) for(int j=0; j<N+1; j++) dp[i][j][n&1] = 0;
      15:              for(int l= 0; l<N+1; l++)
      16:              {
      17:                  for(int r = 0; r<N+1; r++)
      18:                  {
      19:                      if(l== r && r == 0 ) continue;
      20:                      if( l == 0) dp[l][r][n&1] = (dp[0][r-1][(n-1)&1] + dp[1][r-1][(n-1)&1]) * 0.5;
      21:                      else if(r == 0) dp[l][r][n&1] = (dp[l-1][r][(n-1)&1] + dp[l-1][r+1][(n-1)&1])  * 0.5;
      22:                      else
      23:                          dp[l][r][n&1] = (dp[max(0,l-1)][r+1][(n-1)&1] + dp[l+1][max(r-1,0)][(n-1)&1]) * 0.5;
      24:                  }
      25:              }
      26:          }
      27:          double ret = 0.0f;
      28:          double pro = 0.0f;
      29:          for(int l=0; l<N+1; l++)
      30:          {
      31:              for(int r = 0; r<N+1; r++)
      32:              {
      33:                  pro += dp[l][r][N&1];
      34:                  cout<<l<<" "<<r<<" "<<N<<" "<<dp[l][r][N&1]<<endl;
      35:                  ret += (l+r+1) * dp[l][r][N&1];
      36:              }
      37:          }
      38:          cout<<"All Pro "<<pro<<endl;
      39:          return ret;
      40:      }
      41:  };
  • 相关阅读:
    大搜车知乎live中的面试题结题方法记录
    git 学习笔记
    JavaScript 函数节流和函数去抖应用场景辨析
    要不要用gzip优化前端项目
    js和native交互方法浅析
    js设计模式之惰性单例模式
    阻止a标签的默认事件及延伸
    为什么会有OPTIONS请求
    浅析前端渲染与服务端渲染
    exports 和 module.exports 的区别
  • 原文地址:https://www.cnblogs.com/sosi/p/3698984.html
Copyright © 2011-2022 走看看