bzoj 4008 亚瑟王 - 动态规划 - 概率与期望
Description
小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑。
Input
输入文件的第一行包含一个整数 T,代表测试数据组数。
Output
对于每组数据,输出一行,包含一个实数,为这套卡牌在这一局游戏中造成的
Sample Input
3 2
0.5000 2
0.3000 3
0.9000 1
Sample Output
HINT
一共有 13 种可能的情况:
题目大意 有n张卡牌,进行r轮游戏,每一轮,从第1张卡牌开始考虑,第i张牌如果没有发动过,则有p[i]的概率对分数有d[i]的贡献,发动后立刻结束这轮游戏。问期望的分数。
有注意到每张卡牌发动的概率之和它之前的牌有关。
考虑用f[i][j]表示当第i张牌得到j次发动机会的概率。
根据dp的某些神奇的性质,只需要考虑第i张卡牌和第(i - 1)张卡牌就可以了(因为这样做的话,f[i - 1]包含了第(i - 2)张卡牌的相关信息,大概感觉有点像递归定义。。)
1.第(i - 1)张卡牌在j次机会中1次都没有发动
显然它的概率为
。
2.第(i - 1)张卡牌在(j + 1)次机会中发动了1次
可以求对立事件的概率,然后拿1去减它,于是得到了它的概率为
不能理解?那我们换个方法,考虑在第i次机会发动,然后求和:

然后用等比数列求和公式:

化简得到:
于是转移转移就好了。
Code
/**
* bzoj
* Problem#4008
* Accepted
* Time: 848ms
* Memory: 1764k
*/
#include <bits/stdc++.h>
using namespace std; const int N = , R = ; int T;
int n, r;
int W[N];
double P[N];
double prP[N][R];
double f[N][R]; inline void prepare() {
for(int i = ; i < N; i++)
prP[i][] = ;
for(int i = ; i < R; i++)
prP[][i] = ;
} inline void init() {
scanf("%d%d", &n, &r);
for(int i = ; i <= n; i++)
scanf("%lf%d", P + i, W + i);
for(int i = ; i <= n; i++)
for(int j = ; j <= r; j++)
prP[i][j] = prP[i][j - ] * ( - P[i]);//, cerr << prP[i][j] << endl;
} inline void solve() {
memset(f, , sizeof(f));
f[][r] = ;
double ans = 0.0;
for(int i = ; i <= n; i++)
for(int j = ; j <= r; j++) {
f[i][j] = f[i - ][j] * prP[i - ][j] + f[i - ][j + ] * ( - prP[i - ][j + ]);
ans += f[i][j] * ( - prP[i][j]) * W[i];
}
printf("%.10lf\n", ans);
} int main() {
prepare();
scanf("%d", &T);
while(T--) {
init();
solve();
}
return ;
}
bzoj 4008 亚瑟王 - 动态规划 - 概率与期望的更多相关文章
- BZOJ 4008 亚瑟王
Description 小K不慎被LL邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个看脸的游 ...
- bzoj 4008 亚瑟王 期望概率dp
对于这种看起来就比较傻逼麻烦的题,最关键的就是想怎么巧妙的设置状态数组,使转移尽可能的简洁. 一开始我想的是f[i][j]表示到第j轮第i张牌还没有被选的概率,后来发现转移起来特别坑爹,还会有重的或漏 ...
- BZOJ 4008 亚瑟王(概率DP 奥妙重重)
题意 中文题面,就不解释了 分析 显然这道题直接求期望太麻烦,想想转化问题(这转化太神了). 定义f(i,j)f(i,j)f(i,j)表示第iii张卡总共被经过jjj次的概率,有转移方程式 f(i,j ...
- bzoj[HNOI2015]亚瑟王 - 递推与动规 - 概率与期望
[bzoj4008][HNOI2015]亚瑟王 2015年4月22日3,2991 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之 ...
- BZOJ4008:[HNOI2015]亚瑟王(DP,概率期望)
Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个 ...
- BZOJ 4008: [HNOI2015]亚瑟王 [DP 概率 !!!]
传送门 题意: $r$轮$n$张卡牌,每一轮依次考虑每张卡牌,$p_i$概率发动造成$d_i$伤害后结束本轮或者继续考虑下一张 每张卡牌发动过之后以后都会跳过 求$r$轮之后的期望伤害 看了一节课出题 ...
- bzoj 4318 OSU! - 动态规划 - 概率与期望
Description osu 是一款群众喜闻乐见的休闲软件. 我们可以把osu的规则简化与改编成以下的样子: 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1 ...
- bzoj 1419 Red is good - 动态规划 - 概率与期望
Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一 ...
- BZOJ [HNOI2015]亚瑟王 ——期望DP
发现每张卡牌最后起到作用只和是否打出去了有关. 而且每张牌打出去的概率和之前的牌打出去的情况有关. 所以我们按照牌的顺序进行DP. 然后记录$i$张牌中打出$j$张的概率,然后顺便统计答案. 直接对系 ...
随机推荐
- 关于fullpage.js 和animate.css制作全屏简单大方的首页
附上源码: html <!DOCTYPE html><html lang="en"><head> <meta charset=" ...
- 实现多线程异步自动上传本地文件到 Amazon S3
最近抽空做个小工具,使用AWSSDK 对本地文件目录监控,并自动同步上传文件到S3 的过程,使用的是多线程异步上传,针对大文件进行了分块 参考文献: https://www.codeproject.c ...
- shell基础:位置参数变量
位置参数名称,作用不变.变得是传入参数. 抽象问题,大多为年长资格老师少数年轻老师,故而问的技术细节少,抽象理论知识多,比如什么是软件工程,问什么会有软件工程.有事注重的是品质,有的注重出身. 每种都 ...
- 获取Sqlserver上一句语句执行后受影响的行数@@rowCount
from:http://blog.163.com/rihui_7/blog/static/212285143201381343240404/ 返回受上一语句影响的行数. ROWCOUNT_BIG.&q ...
- 关于toolchain(工具链)的一点知识
之前一直觉得toolchain是个高大上的东西,现摘录 uClibc中的FAQ以助理解. A toolchain consists of GNU binutils, the gcc compiler, ...
- Message对象
一)描述 1: 每一个Message对象都包含两个对象: (1)google::protobuf::Descriptor 描述对象,是Message所有Filed的一个集合,它又包含了FieldDes ...
- python windows 下pip easy_install 使用错误的问题
最近电脑重装了系统,又重新安装python .在官网下载了安装包后电脑成功安装了,但使用pip命令时出现以下错误 Fatal error in launcher: Unable to create p ...
- kali linux wmtools安装
1,选择挂载盘时选择自动检测 2,点击安裝vmware tools安裝 3.tar -xzf 壓縮包名 4../vmware-install.pl 5,reboot
- Real Time Credit Card Fraud Detection with Apache Spark and Event Streaming
https://mapr.com/blog/real-time-credit-card-fraud-detection-apache-spark-and-event-streaming/ Editor ...
- SpringMVC探究-----常用获取传递参数的方法
1.@RequestParam @RequestParam 常用来映射请求参数,它有三个属性可以配置: value 值即请求参数的参数名 required 该参数是否必须. 默认为 true d ...