题目大意:

有n条路,选每条路的概率相等,初始能力值为f,每条路通过的难度值为ci,当能力值大于某条路A的难度值b时,能够成功逃离,花费时间ti,小于等于时,不能逃离,天数加一天,但能力值增加b.

给定初始的能力值,求成功逃离的期望。

分析:

概率dp做的少,感觉不是很简单。

设dp[j]表示能力值为j时,逃离的期望值。

对于每条路i,当j>c[i]时,成功逃离+(ti[i]*p),否则加(+1+dp[j+c[j]])*p;

从后往前递推,求出dp[f]。

精度卡的好严,看看下面2个代码就行了

WA的代码

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#define INF 10000000
using namespace std;
int main()
{
int n,f;
double dp[];
int c[],t[];
while(scanf("%d %d",&n,&f)!=EOF)
{
int sum=,Max=-INF;
for(int i=; i<n; i++)
{
scanf("%d",&c[i]);
Max=max(Max,c[i]);
int tt=(int)((1.0+sqrt(5.0))/2.0*c[i]*c[i]);
t[i]=tt;
sum+=t[i];
}
double p=1.0/n;
for(int i=Max+; i<=*Max; i++)
dp[i]=(double)sum*p;
for(int j=Max; j>=f; j--)
{
double tem=0.0;
for(int i=; i<n; i++)
{
if(c[i]<j)
tem+=t[i]*p;
else
tem+=(+dp[j+c[i]])*p;
}
dp[j]=tem;
}
printf("%.3lf\n",dp[f]);
}
return ;
}

AC 代码

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<iostream>
#define INF 10000000
using namespace std;
int main()
{
int n,f;
double dp[];
int c[],t[];
while(scanf("%d %d",&n,&f)!=EOF)
{
double sum=;
int Max=-INF;
for(int i=;i<n;i++)
{
scanf("%d",&c[i]);
Max=max(Max,c[i]);
int tt=(int)((1.0+sqrt(5.0))/2.0*c[i]*c[i]);
t[i]=tt;
sum+=t[i];
}
double p=1.0/n;
for(int i=Max+;i<=*Max;i++)
dp[i]=sum*p;
for(int j=Max;j>=f;j--)
{
double tem=0.0;
for(int i=;i<n;i++)
{
if(c[i]<j)
tem+=t[i]*p;
else
tem+=(+dp[j+c[i]])*p;
}
dp[j]=tem;
}
printf("%.3lf\n",dp[f]);
}
return ;
}

ZOJ Problem Set - 3640 Help Me Escape的更多相关文章

  1. ZOJ Problem Set - 1394 Polar Explorer

    这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...

  2. ZOJ Problem Set - 1025解题报告

    ZOJ Problem Set - 1025 题目分类:基础题 原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=10 ...

  3. ZOJ Problem Set - 3829Known Notation(贪心)

    ZOJ Problem Set - 3829Known Notation(贪心) 题目链接 题目大意:给你一个后缀表达式(仅仅有数字和符号),可是这个后缀表达式的空格不幸丢失,如今给你一个这种后缀表达 ...

  4. ZOJ Problem Set - 2563 Long Dominoes 【如压力dp】

    称号:ZOJ Problem Set - 2563 Long Dominoes 题意:给出1*3的小矩形.求覆盖m*n的矩阵的最多的不同的方法数? 分析:有一道题目是1 * 2的.比較火.链接:这里 ...

  5. ZOJ Problem Set - 3593 拓展欧几里得 数学

    ZOJ Problem Set - 3593 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3593 One Person ...

  6. ZOJ Problem Set - 2297 Survival 【状压dp】

    题目:ZOJ Problem Set - 2297 Survival 题意:给出一些怪,有两个值,打他花费的血和能够添加的血,然后有一个boss,必须把小怪全部都打死之后才干打boss,血量小于0会死 ...

  7. ZOJ Problem Set - 3820 Building Fire Stations 【树的直径 + 操作 】

    题目:problemId=5374" target="_blank">ZOJ Problem Set - 3820 Building Fire Stations 题 ...

  8. ZOJ Problem Set - 3229 Shoot the Bullet 【有上下界网络流+流量输出】

    题目:problemId=3442" target="_blank">ZOJ Problem Set - 3229 Shoot the Bullet 分类:有源有汇 ...

  9. ZOJ Problem Set - 3822Domination(DP)

    ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子 ...

随机推荐

  1. [Jquery]网页定位导航特效

    描述:左右联动的导航,非常适合展示页面内容多,区块划分又很明显的,点击右边固定导航项时,左边的内容跟着切换.滑动滚动条的时候,右边的导航也随着左边的展示而进行高亮切换. 思路:比较滚动距离和楼层距离( ...

  2. HDU 4050 wolf5x 概率dp 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=4050 题意: 现在主角站在0处,需要到达大于n的位置 主角要进入的格子有三种状态: 0. 不能进入 1. 能进入 ...

  3. USB鼠标按键驱动

    现象:把USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能 ...

  4. form v

    <form name="example_form" action="http://google.com" method="POST"& ...

  5. LTP学习

    下载LTP源码和模型文件: https://github.com/linux-test-project/ltp 官方说明文档 http://ltp.readthedocs.org/zh_CN/late ...

  6. Linux-设置环境变量

    一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“ /opt/au1200_rm/build_tools/bin”目录下, ...

  7. const的全面理解

    const关键字用来作甚?const是一个类型修饰符.常见的类型修饰符有哪些? short long unsigned signed static autoextern register 定义一个变量 ...

  8. S5PV210之beep-bus模型 linux3.0.8驱动

    目录: 一. bus-driver-device模型 二. 运行结果,及错误解决 三. 怎样利用以有的driver device驱动来写自已的beep-driver-device 驱动       四 ...

  9. matlab调用opencv函数的配置

    环境: VS2010 活动解决方案平台x64 WIN 8.1 Opencv 2.4.3 Matlab 2012a 1.  首先保证vs2010能正确调用opencv函数, 2.  Matlab中选择编 ...

  10. ios页面间传递参数四种方式

    ios页面间传递参数四种方式 1.使用SharedApplication,定义一个变量来传递. 2.使用文件,或者NSUserdefault来传递 3.通过一个单例的class来传递 4.通过Dele ...