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 ...
随机推荐
- discuz后台开发常用函数
showsetting()表单显示 返回值:无 参数: $setname - 指定输出标题,如:setting_basic_bbname, 自动匹配描述文字为:setting_basic_bbname ...
- MySQL知识点链接
1.使用ab进行压力测试详解 http://www.365mini.com/page/apache-benchmark. ...
- PHP-redis中文文档
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/wi ...
- Post方法调用公司发Mail的接口
调用公司发Mail的接口. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...
- jdbc事务处理和连接池
JDBC: * JDBC概念:Java DataBase Connectivity(Java数据库连接) SUN公司提供的一组连接数据库API. * JDBC开发步骤: * 1.注册驱动. * 2.获 ...
- hnu11187
AC自动机+DP #include <cstdio> #include <queue> #include <cstring> using namespace std ...
- 彻底卸载MySql
刚装了下MySql,装的过程中由于修改了服务名,导致最后配置假死,不得已,重装. 但是重装时总是失败,于是google了一下,找到彻底卸载mysql的方法: 最近安装本地测试用 MySQL 服务器时总 ...
- Qt字符转换
1.QString -> char* #include<QTextCodec> QTextCodec::setCodecForLocale(QTextCodec::codecFor ...
- ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))
祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...
- 21. javacript高级程序设计-Ajax与Comet
1. Ajax与Comet 1.1 XMLHttpRequest对象 IE5是第一款引入XHR对象的浏览器,IE5中是通过MSXML库中的一个ActiveX对象实现的.因此在IE中可能存在MSXML2 ...