【BZOJ】4008: [HNOI2015]亚瑟王
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4008
这题主要在于:先算概率,再算期望!
一轮一轮的计算似乎很复杂,每一轮它其实是可以看作一次机会
考虑${f[i][j]}$表示已经按照顺序考虑完了第$i$张卡牌,第$i$个人得到了第$j$次机会的概率。
那么${ans=\sum_{i=1}^{n}\sum_{j=1}^{r}f[i][j]*(1-(1-p_i)^{j})*d_i}$//表示$i$利用到了机会。
${f[i][j]=f[i-1][j]*(1-p_{i-1})^{j}+f[i-1][j+1]*(1-(1-p_{i-1})^{j+1})}$//分别表示$i-1$利用了一个机会,$i-1$没有利用到机会。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<cstdlib>
#include<cmath>
#include<cstring>
using namespace std;
#define maxn 1010
#define llg long long
#define yyj(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);
llg n,m,a[maxn],T,r;
double f[maxn][maxn],ans,p[maxn],mi[maxn][maxn];
void init()
{
scanf("%lld%lld",&n,&r);
for (llg i=;i<=n;i++)
{
scanf("%lf %lld",&p[i],&a[i]);
mi[i][]=-p[i];
for (llg j=;j<=r+;j++) mi[i][j]=mi[i][j-]*(-p[i]);
}
for (llg i=;i<=max(r,n);i++) f[][i]=f[i][r+]=;
f[][r]=;
ans=;
} int main()
{
yyj("king");
cin>>T;
for (llg i=;i<maxn;i++) mi[i][]=mi[][i]=;
while (T--)
{
init();
for (llg i=;i<=n;i++)
for (llg j=;j<=r;j++)
{
f[i][j]=f[i-][j]*mi[i][j]+f[i-][j+]*(-mi[i][j+]);
ans+=f[i-][j+]*(-mi[i][j+])*a[i];
}
printf("%.10lf\n",ans);
}
return ;
}
【BZOJ】4008: [HNOI2015]亚瑟王的更多相关文章
- BZOJ 4008: [HNOI2015]亚瑟王( dp )
dp(i, j)表示考虑了前i张牌, 然后还有j轮的概率. 考虑第i+1张牌: 发动的概率 : p = dp(i, j) * (1 - (1-p[i+1])^j) 没发动的概率 : dp(i, j) ...
- bzoj 4008: [HNOI2015]亚瑟王
Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂 亮.众所周知,亚瑟王是一 ...
- ●BZOJ 4008 [HNOI2015]亚瑟王
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=4008题解: 概率dp,神仙题 如果我们可以求出每种牌被取到的概率f,那么最后期望造成的伤害也 ...
- BZOJ 4008: [HNOI2015]亚瑟王 [DP 概率 !!!]
传送门 题意: $r$轮$n$张卡牌,每一轮依次考虑每张卡牌,$p_i$概率发动造成$d_i$伤害后结束本轮或者继续考虑下一张 每张卡牌发动过之后以后都会跳过 求$r$轮之后的期望伤害 看了一节课出题 ...
- 4008: [HNOI2015]亚瑟王
4008: [HNOI2015]亚瑟王 链接 分析: 根据期望的线性性,直接求出每张牌出现的概率,最后乘以攻击力就是答案. 每张牌出现的概率只与它前面的牌有关,与后面的没有关系,于是按顺序考虑每张牌. ...
- bzoj[HNOI2015]亚瑟王 - 递推与动规 - 概率与期望
[bzoj4008][HNOI2015]亚瑟王 2015年4月22日3,2991 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之 ...
- 【BZOJ4008】[HNOI2015]亚瑟王(动态规划)
[BZOJ4008][HNOI2015]亚瑟王(动态规划) 题面 BZOJ 洛谷 题解 设\(f[i][j]\)表示前\(i\)张卡中有\(j\)张被触发的概率. 分两种情况转移,即当前这张是否被触发 ...
- 【BZOJ4008】[HNOI2015]亚瑟王
[BZOJ4008][HNOI2015]亚瑟王 题面 bzoj 洛谷 题解 由期望的线性性 可以知道,把所有牌打出的概率乘上它的伤害加起来就是答案 记第$i$张牌打出的概率为$fp[i]$ 则 $$ ...
- 【BZOJ4008】[HNOI2015]亚瑟王 期望
[BZOJ4008][HNOI2015]亚瑟王 Description 小 K 不慎被 LL 邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑. 他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最 ...
随机推荐
- Linux:CPU使用率100%排查方法
Linux作为一个多任务操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,因此造成多任务同时运行的错觉. CPU使用率 Linux作为一个多任务操作系统,将每个CPU ...
- jvm 工作原理
作为一名Java使用者,掌握JVM的体系结构也是必须的. 说起Java,人们首先想到的是Java编程语言,然而事实上,Java是一种技术,它由四方面组成:Java编程语言.Java类文件格式.Java ...
- MyEclipse非正常关闭问题
问题:电脑突然断电,myeclipse非正常关闭,“Package Explorer”非正常显示,出现错误“Could not create the view: An unexpected excep ...
- selenium 模拟手机
import time from selenium import webdriver mobileEmulation = {'deviceName': 'Galaxy S5'} options = w ...
- java常用代码段整理(持续更新)
FileWriter指定编码格式 FileWriter 默认是用(ISO-8859-1 or US-ASCII)西方编码的,总之不是UTF-8的,而FileWriter类有getEncoding方法, ...
- JQuery 实现 倒计时 按钮具体方法
<head> <title>test count down button</title> <script src="http://ajax.aspn ...
- 20145315何佳蕾《网络对抗》web基础
实验步骤 (1).Web前端HTML(1分) 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. (2).Web前端javascipt(1分) ...
- mtr 命令
mtr命令的使用: -r --report 以报告的方式发布监测的结果 -s 30 指定发送包的大小 这个随意 按照自己的需求 -i 10 设置icmp协议返回包的时间 -n no- ...
- 【python--函数解读】
1.strip()函数:用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列(包括'\n', '\r', '\t', ' ') 注意: 该方法只能删除开头或是结尾的字符,不能删除中间部分的 ...
- vsCode设置中文
1.安装软件之后,关闭欢迎界面,Ctrl+shift+p打开命令窗口,输入lang,选择configuration display language,改为 "locale":&qu ...