hdu 4050 2011北京赛区网络赛K 概率dp ***
题目:给出1-n连续的方格,从0开始,每一个格子有4个状态,左右脚交替,向右跳,而且每一步的步长必须在给定的区间之内。当跳出n个格子或者没有格子可以跳的时候就结束了,求出游戏的期望步数
0:表示不能到达这个格子
1:表示左脚跳进这个格子
2:表示右脚跳进这个格子
3:随意哪个脚跳进这个格子,而且下一步随意用哪个脚
dp[i][j] :表示走到第 i 个格子在 j 状态的期望。
当j=1时,你可以走到dp[i+k][2],dp[i+k][3],
当j=2时,你可以走到dp[i+k][1],dp[i+k][3],
当j=3时,你可以走到dp[i+k][2],dp[i+k][3],dp[i+k][1],
概率dp专题一波走起
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
const int INF=0x3f3f3f3f;
const double eps=1e-;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("*****\n");
const int MAXN=;
double dp[][];
double p[][];
int main(){
int t,a,b,n;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&a,&b);
for(int i=;i<=n;i++)
for(int j=;j<;j++)
scanf("%lf",&p[i][j]);
for(int i=n+;i<=n+a;i++)
for(int j=;j<;j++)
p[i][j]=(j==);
memset(dp,,sizeof(dp));
dp[][]=;
for(int i=;i<=n;i++){
double p1=,p2=,p3=;
for(int j=a;j<=b;j++){
dp[i+j][]+=dp[i][]*p1*p[i+j][];
dp[i+j][]+=dp[i][]*p1*p[i+j][];
p1*=(p[i+j][]+p[i+j][]);
dp[i+j][]+=dp[i][]*p2*p[i+j][];
dp[i+j][]+=dp[i][]*p2*p[i+j][];
p2*=(p[i+j][]+p[i+j][]);
dp[i+j][]+=dp[i][]*p3*p[i+j][];
dp[i+j][]+=dp[i][]*p3*p[i+j][];
dp[i+j][]+=dp[i][]*p3*p[i+j][];
p3*=p[i+j][];
// cout<<dp[i+j][1]<<" "<<dp[i+j][2]<<" "<<dp[i+j][3]<<endl;
}
}
double ans=;
for(int i=;i<=n+a;i++)
for(int j=;j<;j++)
ans+=dp[i][j];
printf("%.8f\n",ans);
}
return ;
}
hdu 4050 2011北京赛区网络赛K 概率dp ***的更多相关文章
- hdu 4044 2011北京赛区网络赛E 树形dp ****
专题训练 #include<stdio.h> #include<iostream> #include<string.h> #include<algorithm ...
- hdu 4043 2011北京赛区网络赛D 概率+大数 **
推出公式为:P = A(2n,n)/(2^(2n)*n!) 但是不会大数,学完java再补
- hdu 4035 2011成都赛区网络赛E 概率dp ****
太吊了,反正我不会 /* HDU 4035 dp求期望的题. 题意: 有n个房间,由n-1条隧道连通起来,实际上就形成了一棵树, 从结点1出发,开始走,在每个结点i都有3种可能: 1.被杀死,回到结点 ...
- hdu 4049 2011北京赛区网络赛J 状压dp ***
cl少用在for循环里 #include<cstdio> #include<iostream> #include<algorithm> #include<cs ...
- hdu 4045 2011北京赛区网络赛F 组合数+斯特林数 ***
插板法基础知识 斯特林数见百科 #include<iostream> #include<cmath> #include<cstdio> #include<cs ...
- hdu 4041 2011北京赛区网络赛B 搜索 ***
直接在字符串上搜索,注意逗号的处理 #include<cstdio> #include<iostream> #include<algorithm> #include ...
- hdu 4046 2011北京赛区网络赛G 线段树 ***
还带这么做的,卧槽,15分钟就被A了的题,居然没搞出来 若某位是1,则前两个为wb,这位就是w #include<cstdio> #include<cstring> #defi ...
- HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: ...
- hdu 4031 2011成都赛区网络赛A题 线段树 ***
就是不知道时间该怎么处理,想了好久,看了别人的题解发现原来是暴力,暴力也很巧妙啊,想不出来的那种 -_-! #include<cstdio> #include<iostream&g ...
随机推荐
- ios 使用xib时,在UIScrollView中添建内容view时,使用约束的注意
请参与一下链接:http://segmentfault.com/a/1190000002462033 简单的说下,就是必须写满一个view的6个约束,就是上下左右高宽,让scrollview 能够根据 ...
- Linux-PAM认证模块
Linux-PAM认证模块 用户访问服务器的时候,服务器的某一个服务程序把用户的谁请求发送到PAM模块进行认证.对于不同的服务器应用程序所对应的PAM模块也是不同的.如果想查看某个程序是否支持 ...
- Delphi xe5 手机开发经验(新手级别)
Delphi xe5 手机开发经验(新手级别) http://diybbs.zol.com.cn/1/34037_699.html http://www.delphitop.com/html/jiqi ...
- Linux下WebSphereV8.5.5.0 安装详细过程
自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Man ...
- JS点击灯泡变亮(学自W3school)
JS学习笔记1(学自W3school) function changeImage() { element = document.getElementByIdx_x('myimage' ...
- 安装Django,运行django-admin.py startproject 工程名,后不出现指定的工程解决办法!!
第一次写博客,,,,, 在看我这篇教程的前提是你应该已经正确装好python和Django了,好了,废话不说了,正题走你!你现在是不是很纠结自己运行django-admin.py startpr ...
- Does the OpenSceneGraph have a native file format?
From OpenSceneGraph-3.0 onwards we have new native file formats based on generic serializers that ar ...
- 实现Asp.Net Mvc4多级Views目录
建立自己MyViewEngine类让他继承RazorViewEngine,之后在构造函数里面写入设置视图位置格式代码如下: public class MyViewEngine : RazorViewE ...
- 解决osg路径与文件名中的中文字符问题
转至:http://blog.csdn.net/zhuqinglu/article/details/2064013 在打开或者保存一个osg模型的时候,经常遇到中文路径或者中文文件名的问题,此时会提示 ...
- Android Service 与 IntentService
Service 中的耗时操作必须 在 Thread中进行: IntentService 则直接在 onHandleIntent()方法中进行