首先,这是一道经典的期望dp题

因为最终状态 $ (所有面都被筛到过) $ 是确定的,所以才用 逆推 ,设状态

$ f[i] $ 表示已经筛到了 $ i $ 个不同的面,有 $ i\over n $ 的概率是由$ f[i] $ 转移而来的,

也就是筛到了之前筛过的面,有 $ {n-i\over n} $ 的概率是由 $ f[i+1] $

转移得到的,

也就是呢,筛到了一个之前没有筛到过的面,并且无论从哪里来,这次的期望次数都

比原来的期望次数多 $ 1 $,所以就得到了转移方程:

$ f[i] = {i \over n} \times f[i] + {n-i \over n} \times f[i+1] $;

注意把 $ f[i] $ 化简到一边;

另外,可以用滚动数组的;

$ f[i]=f[i+1]+n/(n-i) $;

AC 代码

#include<iostream>
#include<cstdio>
using namespace std;
int n,T;
double g[2];
int main(){
int i;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
g[n&1]=0;
i=n-1;
for(;i>=0;i--) g[i&1]=1.0*g[(i+1)&1]+1.0*n/(n-i);
printf("%0.2f\n",g[0]);
}
}

题解 SP1026 【FAVDICE - Favorite Dice】的更多相关文章

  1. SP1026 FAVDICE - Favorite Dice 数学期望

    题目描述: 一个n面的骰子,求期望掷几次能使得每一面都被掷到. 题解:先谈一下期望DP. 一般地,如果终止状态固定,我们都会选择逆序计算. 很多题目如果顺序计算会出现有分母为 0 的情况,而逆序计算中 ...

  2. SP1026 FAVDICE - Favorite Dice

    题目描述 一个\(n(n \leq 1000)\)面的骰子,求期望掷几次能使得每一面都被掷到. 输入输出样例 输入样例#1: 2 1 12 输出样例#1: 1.00 37.24 思路:期望\(dp\) ...

  3. SP1026 FAVDICE - Favorite Dice[期望DP]

    也许更好的阅读体验 \(\mathcal{Description}\) 一个\(n\)面的骰子,求期望掷几次能使得每一面都被掷到 输入有\(T\)组数据,每次输入一个\(n\) 输出保留两位小数 \( ...

  4. 题解:SPOJ1026 Favorite Dice

    原题链接 题目大意 给你一个n个面的骰子,每个面朝上的几率相等,问每个面都被甩到的期望次数 题解 典型的赠券收集问题. 我们考虑当你手上已有\(i\)种不同的数,从集合中任选一个数得到新数的概率,为\ ...

  5. 【专题】概率期望DP

    11.22:保持更新状态:主要发一些相关的题目和个人理解 (P.S.如果觉得简单,可以直接看后面的题目) upd 11.30 更完了 [NO.1] UVA12230 Crossing Rivers  ...

  6. 「算法笔记」期望 DP 入门

    一.数学期望 1. 由来 在 \(17\) 世纪,有一个赌徒向法国著名数学家帕斯卡挑战,给他出了一道题目:甲乙两个人赌博,他们两人获胜的机率相等,比赛规则是先胜三局者为赢家,一共进行五局,赢家可以获得 ...

  7. bestcoder Round #7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  8. LightOJ 1248 Dice (III) 概率

    Description Given a dice with n sides, you have to find the expected number of times you have to thr ...

  9. hdu 4586 Play the Dice 概率推导题

    A - Play the DiceTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/ ...

随机推荐

  1. 详细了解JS Map,它和传统对象有什么区别?

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者.原文出处:https://www.codeproject.com/Articles/5278387/Under ...

  2. Win10 第三方浏览器无法上网或者上网速度慢 的终极解决方案

    请参考: https://blog.csdn.net/shouzei123/article/details/82862478 近期,工程师收到大量反馈360浏览器,极速模式无法打开网页,兼容模式无此问 ...

  3. git 合并两个分支的某个文件

    软件开发基本都是多个feature分支并行开发,而在上线前有可能某个分支的开发或测试还没有完成,又或者是产品调整,取消了该分支功能的上线计划,我们在release前不合并该分支即可,然而如果该分支中的 ...

  4. Mysql 部署

    设置 path 环境变量 C:\mysql\mysql-5.7.17-winx64\bin; 创建C:\mysql\mysql-5.7.17-winx64\my.ini 内容如下 [mysql] # ...

  5. Laptop(线段树+离散化)

    链接:https://ac.nowcoder.com/acm/contest/16/A来源:牛客网 题目描述 FST是一名可怜的小朋友,他很强,但是经常fst,所以rating一直低迷. 但是重点在于 ...

  6. HDU-1754-I Hate It(单点更新+区间查询)

    很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问.当然,老师有 ...

  7. 1008 Elevator (20 分)(模拟)

    The highest building in our city has only one elevator. A request list is made up with N positive nu ...

  8. 深入了解Kafka【五】Partition和消费者的关系

    1.消费者与Partition 以下来自<kafak权威指南>第4章. 假设主题T1有四个分区. 1.1.一个消费者组 1.1.1.消费者数量小于分区数量 只有一个消费者时,消费者1将收到 ...

  9. 07vue 自定义全局组件 通用流程

    1.全局组件的目录 2.loading/index.js import LoadingComp from './Loaiding' const compName=LoadingComp.name // ...

  10. 19_Python算法

    1.冒泡算法 list = [1, 5, 2, 6, 9, 3, 4, 0] print(len(list)) # conunt = 1 while conunt < len(list): fo ...