sdut2623--The number of steps(概率dp第一弹,求期望)
The number of steps
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描写叙述
Mary stands in a strange maze, the maze looks like a triangle(the first layer have one room,the second layer have two rooms,the third layer have three rooms …). Now she stands at the top point(the first layer), and the KEY of this maze is in the lowest layer’s
leftmost room. Known that each room can only access to its left room and lower left and lower right rooms .If a room doesn’t have its left room, the probability of going to the lower left room and lower right room are a and b (a + b = 1 ). If a room only has
it’s left room, the probability of going to the room is 1. If a room has its lower left, lower right rooms and its left room, the probability of going to each room are c, d, e (c + d + e = 1). Now , Mary wants to know how many steps she needs to reach the
KEY. Dear friend, can you tell Mary the expected number of steps required to reach the KEY?
输入
are no more than 70 test cases.
input is terminated with 0. This test case is not to be processed.
输出
calculate the expected number of steps required to reach the KEY room, there are 2 digits after the decimal point.
演示样例输入
3
0.3 0.7
0.1 0.3 0.6
0
演示样例输出
3.41
提示
来源
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2luZGRyZWFtcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast">
+ E4 * P34 + 1
;
E2 = E2 *P22+ E4
* P24 + 1 ;
E1 =E1 *P11 + E2
*P12 +E3 * P13 + 1
;
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
double dp[100][100] ;
double a , b , c , d , e ;
int i , j , n ;
int ff(int x,int y)
{
if( x <= n && y >=(n+1)-x )
return 1 ;
return 0 ;
}
void f()
{ return ;
}
int main()
{
while(scanf("%d", &n) && n)
{
scanf("%lf %lf", &a, &b);
scanf("%lf %lf %lf", &c, &d, &e);
memset(dp,0,sizeof(dp));
for(i = n ; i >= 1 ; i--)
{
for(j = (n+1)-i ; j <= n ; j++)
{
if(i == n && j == (n+1)-i) continue ;
else if( i == n )
dp[i][j] = 1.0*( dp[i][j-1] ) + 1.0 ;
else
{
if( j == (n+1)-i )
dp[i][j] = a*dp[i+1][j-1] + b*dp[i+1][j] + 1.0 ;
else
dp[i][j] = c*dp[i+1][j-1] + d*dp[i+1][j] + e*dp[i][j-1] + 1.0 ;
}
}
}
printf("%.2lf\n", dp[1][n]);
}
return 0;
}
sdut2623--The number of steps(概率dp第一弹,求期望)的更多相关文章
- The number of steps(概率dp)
Description Mary stands in a strange maze, the maze looks like a triangle(the first layer have one r ...
- sgu 495. Kids and Prizes (简单概率dp 正推求期望)
题目链接 495. Kids and Prizes Time limit per test: 0.25 second(s)Memory limit: 262144 kilobytes input: s ...
- hdu 4336 Card Collector (概率dp+位运算 求期望)
题目链接 Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 3853 LOOPS (概率dp 逆推求期望)
题目链接 LOOPS Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 125536/65536 K (Java/Others)Tota ...
- 【概率dp】【数学期望】Gym - 101190F - Foreign Postcards
http://blog.csdn.net/DorMOUSENone/article/details/73699630
- [TS-A1489][2013中国国家集训队第二次作业]抽奖[概率dp]
概率dp第一题,开始根本没搞懂,后来看了09年汤可因论文才基本搞懂,关键就是递推的时候做差比较一下,考虑新加入的情况对期望值的贡献,然后推推公式(好像还是不太会推qaq...) #include &l ...
- 13年山东省赛 The number of steps(概率dp水题)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud The number of steps Time Limit: 1 Sec Me ...
- [2013山东ACM]省赛 The number of steps (可能DP,数学期望)
The number of steps nid=24#time" style="padding-bottom:0px; margin:0px; padding-left:0px; ...
- SDUT 2623 The number of steps (概率)
The number of steps Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 Mary stands in a stra ...
随机推荐
- 如何让asp.net mvc 直接运行mobile页面
在controller里面加上下面一句 HttpContext.SetOverriddenBrowser(BrowserOverride.Mobile);
- JQuery动态增加删除元素
<form action="" method="post" enctype="multipart/form-data"> < ...
- Mac打造python2 python3开发环境
最新版的MacOS Sierra默认带的python环境仍然为2.7.10,本文将介绍使用Brew安装python3.5并做简单的配置,打造python2,python3共存的开发环境 直接尝试bre ...
- BFC——块级格式上下文
BFC中的B指的是block,对应的还有IFC,I指的是inline.对于BFC的理解可以参考层叠上下文.页面中,盒子的排布规则,是生效在对应的BFC中.两个BFC中的布局互不影响.页面的本身的根本身 ...
- 【原创】Freak3D printer 的Repetier-Host 的设置
软件版本号:Repetier-Host 版本号 1.6.1 操作系统: win10 x64 专业版 3d打印机: Freak3D: 1. freak3D的相关参数(通过freak3D的官方打印文件得到 ...
- JS模拟键盘事件 -- 原理及小例子
提问: 键盘默认事件,比如tab切换,alt+f4关闭,ctrl+t新建等,如果不想通过键盘而是一些按钮点击来触发这些功能,该咋办呢? 例子: 先以tab为例上一个小例子: <!DOCTYPE ...
- AFC项目开发文档整理
AFC项目开发文档整理 PHPCMS 的确是一个伟大的CMS,我对它爱不释手. 标签嵌套无法loop获取的解决办法.关键代码如下: /\*后台添加\*/ $str = preg_replace ( & ...
- jquery下 选择器整理
jQuery 的选择器可谓之强大无比,这里简单地总结一下常用的元素查找方法 $("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个 ...
- Python基础第三天
三元运算 三元运算又叫三目运算,是对简单的条件语句的缩写,例如if判断 # 标准if判断语法 if 1 == 1: name = "yes" else: name = " ...
- 内核参数优化之1 keepalive解析
以下信息纯属虚构,切勿相信! tcp/ip协议中有一个keep-alive机制,即检查空连接的时效性,当一个空连接持续一段时间后,就会发送一个keep-alive探测包,来探测客户端是否还存在. 如果 ...