ZOJ 3640 Help Me Escape
来源:互联网 发布:js中如何格式化日期 编辑:程序博客网 时间:2024/05/01 00:19
OJ题目:click here~~
题目分析:有n条路径逃出洞穴,第i条路径有一个难度值ci。某人开始有战斗值f,每天随机选择某一条路径想要逃出。只要此时的 f 大于所选路径的ci,就能花费ti的天数逃出。这里。否则,等待明天再试吧,但是战斗值能增加ci。求逃出的期望天数。
设dp[ i ] 为战斗值为i时,逃出的期望天数。详细解释见代码。
AC_CODE
const int maxn = 102;const double eps = 1e-8;double t[maxn];int c[maxn];double dp[20002];int n , m ;int vis[20002];double dfs(int x){ if(!(fabs(dp[x]) < eps)) return dp[x]; int i , j , k; double f = 0; for(i = 1;i <= n;i++){//每天随机的选择某个路径 if(c[i] < x) f += t[i];//如果战斗值>c[i] , 则需要花t[i]的天数逃出 else f += (1 + dfs(x + c[i]));//否则,这天战斗值加c[i],等待第二天选择吧 } return dp[x] = f/n;//选择每条路径的概率都是1/n}int main(){ int i , j , k ; while(cin >> n >> m){ for(i = 1;i <= n;i++) scanf("%d",&c[i]); for(i = 1;i <= n;i++) t[i] = (int)((1 + sqrt(5.0))*0.5*c[i]*c[i]);//根据公式计算天数,强制类型转换为int,去掉小数部分,功能等于floor memset(dp , 0 , sizeof(dp)); printf("%.3lf\n",dfs(m)); } return 0;}
1 0
- ZOJ-3640-Help Me Escape
- zoj 3640 Help Me Escape
- ZOJ 3640 Help Me Escape
- ZOJ 3640 Help Me Escape
- ZOJ 3640 Help Me Escape
- ZOJ 3640 Help Me Escape
- zoj 3640 Help Me Escape
- Help Me Escape ZOJ
- ZOJ 3640 Help Me Escape 概率DP
- 概率dp ZOJ 3640 Help Me Escape
- zoj 3640 Help Me Escape(概率dp)
- ZOJ 3640 Help Me Escape(概率dp)
- zoj-3640-Help Me Escape-概率DP
- zoj 3640 Help Me Escape(期望)
- ZOJ - 3640 Help Me Escape(概率dp)
- ZOJ 3640 Help Me Escape 概率dp
- Help Me Escape - ZOJ 3640 期望dp
- ZOJ 3640 Help Me Escape (概率DP)
- SP2010开发和VS2010专家"食谱"--第六章节--Web Services和REST(6)--Creating a custom SharePoint WCF service
- 【Leetcode】Add Two Numbers
- 提高写代码的能力
- linux下常用的压缩命令
- m1905私人影院 v3.1.8 官方免费版
- ZOJ 3640 Help Me Escape
- 整理了一下Xcode快捷键,史上最全!
- Instruments-Automation: 如何连续运行多个测试脚本
- BackgroundWorker Class Sample for Beginners
- EF性能之关联加载
- William Stallings 博士介绍 及 关于一些计算数学基础性的材料 -
- K-Means算法和实现代码
- www
- TopCoder SRM 144 div2