LightOJ1030-Discovering Gold-dp
来源:互联网 发布:淘宝代销刷单 编辑:程序博客网 时间:2024/06/06 08:59
题目大意:有n个点,开始在1这个点,每次用筛子前进,每到达一个新的点,就把当前的点的金子收下,如果那个点>n就返回去重新抛,问你最后金子的期望是多少;
题目解析:概率dp,一开始一直想着从前面开始dp,肯定不可以因为时间复杂度太高,应该从后面开始dp,这样就是记忆化搜索了,时间复杂度会大大降低;
AC代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>using namespace std;double dp[110];int a[110],n;double dfs(int pos){if(dp[pos]!=-1.0)return dp[pos];int i,cnt=0;double ans=0;for(i=1;i<=6;i++){if(pos+i<=n){cnt++;ans+=dfs(pos+i);}}dp[pos]=ans*(1.0/cnt)+a[pos];return dp[pos];}int main(){int cas,c,i;scanf("%d",&cas);for(c=1;c<=cas;c++){scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);}for(i=1;i<=n;i++)dp[i]=-1.0;dp[n]=a[n];printf("Case %d: %.12lf\n",c,dfs(1));}return 0;}
0 0
- LightOJ1030-Discovering Gold-dp
- LightOJ1030---Discovering Gold(概率dp)
- lightoj1030 - Discovering Gold【概率dp求期望】
- LightOJ1030- Discovering Gold(期望dp)
- LightOJ1030-Discovering Gold
- 1030 - Discovering Gold (lightoj 1030 概率DP)
- lightoj 1030 Discovering Gold (基础概率dp)
- 【期望dp】LightOJ 1030 Discovering Gold
- LightOJ 1030 - Discovering Gold (期望dp)
- LightOJ 1030 - Discovering Gold(dp)
- LightOJ 1030 Discovering Gold(期望DP)
- [LightOJ 1030] Discovering Gold (概率DP)
- 1030 Discovering Gold(水DP)
- lightoj 1030discovering gold(概率dp)
- lightOJ Discovering Gold(期望DP入门)
- 概率dp LightOJ 1030 Discovering Gold
- LightOJ 1030 Discovering Gold 概率dp
- 【LightOJ 1030】Discovering Gold(期望DP)
- UVM overwrite
- IE7.JS解决IE兼容性问题方法
- [POJ1390]Blocks(dp)
- python 设置代理
- Eclipse如何导入一个已有的javaproject
- LightOJ1030-Discovering Gold-dp
- hdu 1573 X问题 水题 一元线性同余方程组
- css和js的浏览器兼容问题汇总
- How To Build CyanogenMod For Huawei Honor 5X ("kiwi")
- Database can't be started on Node 1 due to serverpool Max value is 1
- 文章标题
- Filter(过滤器)与Interceptor(拦截器)的区别
- setTimeout,clearTimeout与setInterval,clearInterval
- 含正方形的不规则数独的对称美感