[spoj Favorite Dice ][期望dp]
(1)https://vjudge.net/problem/SPOJ-FAVDICE
题意:有一个n面的骰子,每一面朝上的概率相同,求所有面都朝上过至少一次的总次数期望。
题解:令dp[i]表示 i 面满足条件的期望次数,则有 dp[i]=$\sum_{j=1}^{i-1}$(Pj*(本次操作对最终期望的贡献+dp[i]))+$\sum_{j=1}^{n-(i-1)}$(Qj*(本次操作对最终期望的贡献+dp[i-1])),其中Pj表示出现已经出现过数字的概率,由于是等概率事件,所以这里所有的Pj都是1/n,同理Qj都是1/n,这道题目求的是次数,所以每次操作对最终期望的贡献都是1,所以这道题写下来就是dp[i]=$\sum_{j=1}^{i-1}$((1/n+dp[i])+$\sum_{j=1}^{n-(i-1)}$((1/n)),化简整理可得转移方程dp[i]=dp[i-1]+n/(n-(i-1))
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<map>
using namespace std;
//#define io_test
#define debug(x) cout<<x<<"$$$$"<<endl;
typedef long long ll;
double dp[];
int main()
{
#ifdef io_test
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif // io_test
int t;
scanf("%d",&t);
while(t--){
int n;
scanf("%d",&n);
dp[]=;
for(int i=;i<=n;i++){
dp[i]=dp[i-]+1.0*n/(n-(i-));
// debug(dp[i]);
}
printf("%.2lf\n",dp[n]);
}
return ;
}
(2)http://2050.acmclub.cn/contests/contest_showproblem.php?pid=1001&cid=2
题意:有n+m条路,其中n条是正确的路,走每条路消耗的时间为ai,正确的路通往终点,剩下m条为错误的路,走每条路消耗的时间为bi,求到终点用时的期望是否大于y
题解:令dp[i]表示第i次找到正确的路的期望时间,显然dp[0]=0,而最后要求的时间期望就是dp[1],则效仿上题有dp[1]=$\sum_{i=1}^{m}$(Pi*(bi+dp[1]))+$\sum_{i=1}^{n}$(Qi*(ai+dp[0])),由于是等概率事件,所以Pi和Qi都是1/(n+m),所以dp[1]=$\sum_{i=1}^{m}$((1/(n+m))*(bi+dp[1]))+$\sum_{i=1}^{n}$((1/(n+m)*ai)),化简得到dp[1]=($\sum_{i=1}^{n}$ai+$\sum_{i=1}^{m}$bi)/n
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<map>
using namespace std;
//#define io_test
#define debug(x) cout<<x<<"$$$$"<<endl;
typedef long long ll;
int a[],b[];
int main()
{
#ifdef io_test
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif // io_test
int t;
scanf("%d",&t);
while(t--){
int n,m,y;
ll sum1=;
ll sum2=;
scanf("%d%d%d",&n,&m,&y);
for(int i=;i<=n;i++){scanf("%d",&a[i]);sum1+=a[i];}
for(int i=;i<=m;i++){scanf("%d",&b[i]);sum2+=b[i];}
if(sum1+sum2>n*y){
printf("Wait\n");
}
else{
printf("Go\n");
}
}
return ;
}
[spoj Favorite Dice ][期望dp]的更多相关文章
- SPOJ Favorite Dice(概率dp)
题意: 一个骰子,n个面,摇到每一个面的概率都一样.问你把每一个面都摇到至少一次需要摇多少次,求摇的期望次数 题解: dp[i]:已经摇到i个面,还需要摇多少次才能摇到n个面的摇骰子的期望次数 因为我 ...
- SP1026 FAVDICE - Favorite Dice[期望DP]
也许更好的阅读体验 \(\mathcal{Description}\) 一个\(n\)面的骰子,求期望掷几次能使得每一面都被掷到 输入有\(T\)组数据,每次输入一个\(n\) 输出保留两位小数 \( ...
- LightOJ 1248 Dice (III) (期望DP / 几何分布)
题目链接:LightOJ - 1248 Description Given a dice with n sides, you have to find the expected number of t ...
- HDU 4405 Aeroplane chess 期望dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4405 Aeroplane chess Time Limit: 2000/1000 MS (Java/ ...
- 【HDU4405】Aeroplane chess [期望DP]
Aeroplane chess Time Limit: 1 Sec Memory Limit: 32 MB[Submit][Stataus][Discuss] Description Hzz lov ...
- LightOj:1030-Discovering Gold(期望dp模板)
传送门:http://www.lightoj.com/volume_showproblem.php?problem=1030 Discovering Gold Time Limit: 2 second ...
- LightOJ 1030 Discovering Gold (概率/期望DP)
题目链接:LightOJ - 1030 Description You are in a cave, a long cave! The cave can be represented by a \(1 ...
- 【BZOJ-1419】Red is good 概率期望DP
1419: Red is good Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 660 Solved: 257[Submit][Status][Di ...
- [NOIP2016]换教室 D1 T3 Floyed+期望DP
[NOIP2016]换教室 D1 T3 Description 对于刚上大学的牛牛来说, 他面临的第一个问题是如何根据实际情况中情合适的课程. 在可以选择的课程中,有2n节课程安排在n个时间段上.在第 ...
随机推荐
- python学习------模块
模块(modue)的概念 在计算机程序开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件 ...
- use this method get wifi from notebook
sudo apt dist-upgrade http://cache.baiducontent.com/c?m=9d78d513d9981de90fb3837e7c478a265b09c0307a8c ...
- 作业:K-means算法应用:图片压缩
from sklearn.datasets import load_sample_image from sklearn.cluster import KMeans import matplotlib. ...
- mysql插入中文报错的问题
报错:1366, "Incorrect string value: '\\xE6\\xB7\\xB1\\xE5\\x85\\xA5...' for column ' 由于公司原因之前一直在使 ...
- Application 、Cookie和 Session 两种会话有什么不同
Application储存在服务端,没有时间限制,服务器关闭即销毁 Session存储在服务端,客户端,关闭即销毁(长时间不使用,且浏览器未关闭,默认自动销毁时间是20分钟) Cookie储存在客户端 ...
- python笔记22-常用模块
模块就是一个python文件,用哪个模块就要import哪个模块 1.调用模块 # import model #import的本质就是把这个python从头到尾执行一遍## model.run1()# ...
- python 保留字符
False 假的 None 无 True 真的 and 和 as作为 assert 断言 break 打破 class 种类 continue 继续 def del 删除 elif 否则如果 else ...
- CentOS6.5 - linux在虚拟机连接主机(使用nat)
NAT模式:是虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网.也就是说,使用NAT模式可以实现在虚拟系统里访问互联网. NAT模式下的虚拟系统的TCP/IP配置信息是由VMn ...
- Oracle数据库各种名字的区别
数据库名(DB_NAME).数据库实例名(INSTANCE_NAME).操作系统环境变量(ORACLE_SID).数据库服务名(SERVICE_NAME).数据库域名(DB_DOMAIN)以及全局数据 ...
- 20175223 姚明宇 MyCP
目录 MyCP 要求 代码运行编译及文本输出输入结果 目录树 代码运行编译: 文本输出输入结果: 源代码 码云链接 目录 MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 X ...