LightOJ 1030 Discovering Gold(期望DP)

原创 2015年11月20日 15:42:27

题意:n个位置,每处有一定价值。从1开始,扔骰子,扔几走几,走到哪就得到那个点的价值,直到走到n。如果掷出的点数超过了n就重新掷。问到达n得到金子价值的期望。

思路:dp[i] = (dp[i+1] + ... + dp[i+j]) / tot,其中1 <= j <= tot(tot为最大可以掷出的点数),显然 tot = min(n - i, 6)。

#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <string>
#include <queue>
#include <stack>
#include <cmath>
#include <set>
#include <map>
using namespace std;

typedef long long LL;
#define mem(a, n) memset(a, n, sizeof(a))
#define ALL(v) v.begin(), v.end()
#define si(a) scanf("%d", &a)
#define sii(a, b) scanf("%d%d", &a, &b)
#define siii(a, b, c) scanf("%d%d%d", &a, &b, &c)
#define pb push_back
#define eps 1e-8
const int inf = 0x3f3f3f3f, N = 1e2 + 5, MOD = 1e9 + 7;

int T, cas = 0;
int n, m;
int v[N];
double dp[N];

int main(){
#ifdef LOCAL
    freopen("/Users/apple/input.txt", "r", stdin);
//	freopen("/Users/apple/out.txt", "w", stdout);
#endif
	
    si(T);
    while(T --) {
    	si(n);
    	for(int i = 1; i <= n; i ++) si(v[i]), dp[i] = v[i] * 1.0;
    	for(int i = n - 1; i > 0; i --) {
    		int tot = min(n - i, 6);
    		for(int j = 1; j <= tot; j ++) dp[i] += dp[i+j] / tot;
    	}
    	printf("Case %d: %.6f\n", ++ cas, dp[1]);
    }
    
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Discovering Gold (期望,递推)

You are in a cave, a long cave! The cave can be represented by a 1 x N grid. Each cell of the cave c...
  • zhuanshunzhe
  • zhuanshunzhe
  • 2017年05月03日 21:57
  • 37

Discovering Gold (概率dp(基础))

【题目来源】:https://vjudge.net/problem/LightOJ-1030 【题意】 有一个1*n的图形,每一个方格编号从1~n,有各自的金钱的数量,起点为1,给出一个六面的骰子...
  • duan_1998
  • duan_1998
  • 2017年06月11日 21:06
  • 151

LightOJ 1030 【概率DP求期望】

题意: n个格子,每个格子有一个值。从1开始,每次扔6个面的骰子,扔出几点就往前几步,然后把那个格子的金子拿走; 如果扔出的骰子+所在位置>n,就重新扔,直到在n; 问取走这些值的期望值是多少; ...
  • KEYboarderQQ
  • KEYboarderQQ
  • 2016年10月31日 16:34
  • 201

lightoj1027(数学期望与概率)

题意: 你在一个迷宫里,面前有n扇们,每个门有一个数字k; 如果k为正数,则通过这扇门,走k分钟就能出去, 如果为负数,则通过这扇门走-k的分钟回到迷宫; 走每扇门概率一样.问走出迷宫所需时间...
  • yeyeyeguoguo
  • yeyeyeguoguo
  • 2015年06月08日 20:50
  • 949

期望&概率dp总结

总算刷完kuangbin期望&概率专题了,下面总结一下心得和题解! 心得:期望dp通常逆推,即从结果推向初始状态,也可以用记忆化搜索进行dp;通常对于某个状态下的期望值E,E=Σp1*(E1+X1...
  • qq_31759205
  • qq_31759205
  • 2017年01月25日 16:34
  • 1836

(概率DP)正向推概率,反向推期望

为什么要正向推概率,反向推期望呢? 首先,我们看看什么是条件概率。 然后,我们再看看什么是贝叶斯公式。...
  • nameofcsdn
  • nameofcsdn
  • 2016年08月01日 09:05
  • 2146

数学期望DP小结

最近刚学了数学期望DP,还是蛮恶心的,但是相比于其他DP还是比较好想的,主要思路和线性DP类似,主要注意的是概率计算利用加法原理加和的方式,还要注意避免数组下标为负的情况,需要进行平移。 Tyvj18...
  • u011757339
  • u011757339
  • 2016年07月02日 19:35
  • 1878

动态规划练习题:概率DP总结,求解数学期望或概率的题目

来源:http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html 概率DP主要用于求解期望、概率等题目。 转移方程有时候比较灵活...
  • NOI2015
  • NOI2015
  • 2015年03月15日 16:20
  • 591

【概率DP入门】

http://www.cnblogs.com/kuangbin/archive/2012/10/02/2710606.html
  • zy691357966
  • zy691357966
  • 2015年07月07日 10:39
  • 5374

(带讲解)bzoj1030 AC自动机+dp

第一道AC自动机上的dp题意是给出一些字符串,求长为m的字符串包含这些的一共有多少个,字符集A-Z首先运用补集转换,转而求不含这些串的个数,最后用26^M减掉就行根据输入的字符串建立AC自动机dp[i...
  • thchuan2001
  • thchuan2001
  • 2017年02月26日 20:47
  • 555
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LightOJ 1030 Discovering Gold(期望DP)
举报原因:
原因补充:

(最多只允许输入30个字)