ZOJ Problem Set - 3640 Help Me Escape
题目大意:
有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的更多相关文章
- ZOJ Problem Set - 1394 Polar Explorer
这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...
- ZOJ Problem Set - 1025解题报告
ZOJ Problem Set - 1025 题目分类:基础题 原题地址:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=10 ...
- ZOJ Problem Set - 3829Known Notation(贪心)
ZOJ Problem Set - 3829Known Notation(贪心) 题目链接 题目大意:给你一个后缀表达式(仅仅有数字和符号),可是这个后缀表达式的空格不幸丢失,如今给你一个这种后缀表达 ...
- ZOJ Problem Set - 2563 Long Dominoes 【如压力dp】
称号:ZOJ Problem Set - 2563 Long Dominoes 题意:给出1*3的小矩形.求覆盖m*n的矩阵的最多的不同的方法数? 分析:有一道题目是1 * 2的.比較火.链接:这里 ...
- ZOJ Problem Set - 3593 拓展欧几里得 数学
ZOJ Problem Set - 3593 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3593 One Person ...
- ZOJ Problem Set - 2297 Survival 【状压dp】
题目:ZOJ Problem Set - 2297 Survival 题意:给出一些怪,有两个值,打他花费的血和能够添加的血,然后有一个boss,必须把小怪全部都打死之后才干打boss,血量小于0会死 ...
- ZOJ Problem Set - 3820 Building Fire Stations 【树的直径 + 操作 】
题目:problemId=5374" target="_blank">ZOJ Problem Set - 3820 Building Fire Stations 题 ...
- ZOJ Problem Set - 3229 Shoot the Bullet 【有上下界网络流+流量输出】
题目:problemId=3442" target="_blank">ZOJ Problem Set - 3229 Shoot the Bullet 分类:有源有汇 ...
- ZOJ Problem Set - 3822Domination(DP)
ZOJ Problem Set - 3822Domination(DP) problemCode=3822">题目链接 题目大意: 给你一个n * m的棋盘,每天都在棋盘上面放一颗棋子 ...
随机推荐
- 项目构建工具Gradle的使用入门(参考,只表明地址)
Gradle入门介绍:简介 http://blog.jobbole.com/71999/ Gradle入门介绍:第一个Java项目 http://blog.jobbole.com/72558/ Gra ...
- BCP批量导入数据时候如何处理表中自动增加的字段
大容量导入数据时保留标识值 (SQL Server) http://msdn.microsoft.com/zh-cn/library/ms186335(v=sql.120).aspx 使用格式化文件跳 ...
- dhtmlxScheduler日历日程控件包括天视图,周视图,月视图,年视图和日程表视图
dhtmlxScheduler 是一个基于Web的类似于Outlook的日历日程控件. 它完全由javascript/js/css编写, 提供类似于MS Outlook Calendar, Apple ...
- JS页面打印,预览,设置,分页
一)在HTML页中加载打印对象 <object id="WebBrowser" width="0" height="0" classi ...
- initWithFrame 和 initWithCoder
当我们所写的程序里没用用Nib文件(XIB)时,用代码控制视图内容,需要调用initWithFrame去初始化 - (id)initWithFrame:(CGRect)frame { if (self ...
- key 4v4
#include "key4v4.h" #include "stm32f10x.h" #include "delay.h" /* PA4-L ...
- ios 检测应用程序升级问题
app 上其实已经有自动检测我们版本的功能. 其实我也觉得对于一个程序员来说检测功能让,系统来维护更合适和合理.开发者只要告诉苹果即可. 然而今天老大非要实现自己版本更新的问题,因此也查找了相关的资 ...
- Spring中配置文件applicationContext.xml配置详解
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...
- php大力力 [023节]CREATE TABLE创建新表sql写字段备注(2015-08-27)
2015-08-27 php大力力023.CREATE TABLE创建新表sql写字段备注 http://www.cnblogs.com/dalitongxue/p/4762182.html 参考: ...
- Java容器类List,ArrayList及LinkedList
List容器类图 List是一个接口,它继承自Collection和Iterable,它的实现类有AbstractList,AbstrackSequenceList,ArrayList,LinkedL ...