TCO 2014 Round 1C 概率DP
2014-04-29 13:01
411 查看
TCO round 1C的 250 和500 的题目都太脑残了,不说了。 TCO round 1C 950 一个棋子,每次等概率的向左向右移动,然后走n步之后,期望cover的区域大小?求cover,肯定就是dp[l][r]
, 走了n步之后,左边cover了l,右边cover了r。 一开始DP没有搞清楚,这个要画一下图就更清楚了。 转移方程就是概率的传递方向.
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
, 走了n步之后,左边cover了l,右边cover了r。 一开始DP没有搞清楚,这个要画一下图就更清楚了。 转移方程就是概率的传递方向.
double dp[505][505][2]; // l,r,n steps unsed;
class RedPaint
{
public:
double expectedCells(int N)
{
memset(dp,0,sizeof(dp));
// the probability of the configuration.
dp[0][0][0] = 1.0;
dp[0][1][1] = 0.5;
dp[1][0][1] = 0.5;
for(int n = 2; n<N+1; n++)
{
for(int i=0; i<N+1; i++) for(int j=0; j<N+1; j++) dp[i][j][n&1] = 0;
for(int l= 0; l<N+1; l++)
{
for(int r = 0; r<N+1; r++)
{
if(l== r && r == 0 ) continue;
if( l == 0) dp[l][r][n&1] = (dp[0][r-1][(n-1)&1] + dp[1][r-1][(n-1)&1]) * 0.5;
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;
else
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;
}
}
}
double ret = 0.0f;
double pro = 0.0f;
for(int l=0; l<N+1; l++)
{
for(int r = 0; r<N+1; r++)
{
pro += dp[l][r][N&1];
cout<<l<<" "<<r<<" "<<N<<" "<<dp[l][r][N&1]<<endl;
ret += (l+r+1) * dp[l][r][N&1];
}
}
cout<<"All Pro "<<pro<<endl;
return ret;
}
};
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
相关文章推荐
- TCO 2015 Round 1B DIV1 500 概率题
- ZOJ3822 ACM-ICPC 2014 亚洲区域赛牡丹江赛区现场赛D题Domination 概率DP
- zoj3822 Domination (The 2014 ACM-ICPC Asia Mudanjiang Regional Contest D题)概率dp
- hdu 5045 - Contest(2014 ACM/ICPC Asia Regional Shanghai Online )概率dp
- 推理题 2014 TCO Round 2B 500 SumAndProductPuzzle
- 【BZOJ3566】[SHOI2014]概率充电器 期望+树形DP
- HDU 4870 Rating 2014 Multi-University Training Contest 1 J题 概率DP+高斯消元
- Codeforces Round #293 (Div. 2) D. Ilya and Escalator(概率DP)
- TCO 2013 round 1C TheKnights
- 3566: [SHOI2014]概率充电器 概率与期望+树形DP
- 【bzoj3566】[SHOI2014]概率充电器 树形DP
- 【Codeforces Round 333 (Div 2)E】【期望DP概率做法 树状数组转前缀和】Kleofáš and the n-thlon n场比赛m个人获得总名次的期望
- [概率 树形DP] BZOJ 3566 [SHOI2014]概率充电器
- bzoj3566 [SHOI2014]概率充电器 (树形DP & 期望概率DP + 转化思路)
- Codeforces Round #301 (Div. 2) D. Bad Luck Island 概率DP
- Codeforces Round #105 D. Bag of mice 概率dp
- 2014 Super Training #1 F Passage 概率DP
- 【树形期望DP】BZOJ3566- [SHOI2014]概率充电器
- 2014牡丹江区域赛D(概率DP)ZOJ3822
- zoj 3822 Domination(2014牡丹江区域赛D题) (概率dp)