题面太长了就不复制了,传送门

一道做了还是很懵逼的题目,感觉以后碰到类似的还是不会,果然HNOI题目很皮。

题解传送

补充一下吧。//感觉他的博客已经写得很好了......Orz 需要的可以两边一起看

1.期望的线性性质 \(E(x+y)=E(x)+E(y)\) //\(x,y\)是两个不同的事件

\(E(kx)=kE(x)\) //(k为常数)

2.单独考虑每张牌的概率的时候,影响其的只有他前面选了几张。

例如在前\(j\)轮里,在牌\(i\)(假设\(i>j\))前面有\(k\)张牌发动了(不包括\(i\))。

若\(k<j\),意味着还有牌在包括\(i\)的后面发动了,这时是不是我们考虑了\(i\)是否发动,所以会有概率做贡献

若\(k==j\),意味着j轮内发动的牌都在\(i\)前面,依题意,我们不会考虑\(i\)是否发动,所以不会有概率做贡献

大家尽量yy一下,语言表达能力有限

3.补充一下这里吧,自己看的时候感觉写的不是很清楚:

\(F[i][j]\)表示在所有\(r\)轮中,前\(i\)张卡一共出了\(j\)张的概率,那么就可以用\(O(n)\)的时间算出\(Fp[i](i>0)\)

枚举前\(i-1\)轮选了\(j\)张牌,那么有\(j\)轮不会考虑到第\(i\)张牌,也就是有\(r-j\)轮会考虑到第\(i\)张牌

//根据状态的定义,我们选了\(j\)张牌是不是意味着我们已经进行了\(j\)轮了,这时\(F[i-1][j]\)就意味着

在前\(i-1\)张牌中我们有\(j\)张发动了,根据题目条件,一旦发动回合结束,即前\(j\)轮根本就没机会来到第\(i\)张牌,所以剩下的\(r-j\)轮就会考虑到\(i\),会对\(Fp[i]\)做出贡献。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
double p[221],f[221][133],all[221];
int d[221];
int main()
{
int t,n,r;
scanf("%d",&t);
while(t--)
{
memset(f,0,sizeof(f));
memset(all,0,sizeof(all));
scanf("%d%d",&n,&r);
for(int i=1;i<=n;i++)
{
scanf("%lf%d",&p[i],&d[i]);
}
f[0][0]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<=r;j++)
{
f[i][j]+=f[i-1][j]*pow(1-p[i],r-j);
if(j>0) f[i][j]+=f[i-1][j-1]*(1-pow(1-p[i],r-j+1));
all[i]+=f[i-1][j]*(1-pow(1-p[i],r-j));
}
}
double ans=0;
for(int i=1;i<=n;i++)
{
ans+=all[i]*d[i];
}
printf("%.10lf\n",ans);
}
}

[HNOI2015]亚瑟王(概率dp)的更多相关文章

  1. P3239 [HNOI2015]亚瑟王——概率DP

    题面:亚瑟王 最近考试考期望很自闭啊,没做过这种类型的题,只能现在练一练: 所谓期望,就是状态乘上自己的概率:对于这道题来说,我们要求的是每张牌的伤害乘上打出的概率的和: 当然不是直接乘,因为给的是每 ...

  2. 【bzoj4008】[HNOI2015]亚瑟王 概率dp

    题目描述 $n$ 张牌,$r$ 轮游戏,每轮从左向右操作,遇到第 $i$ 张牌有 $p_i$ 的概率选中,选中会产生 $d_i$ 的贡献,丢弃掉该牌并结束这一轮,否则继续下一张.问最终的期望贡献. 输 ...

  3. P3239 [HNOI2015]亚瑟王 期望dp

    这个题一看就是期望dp,但是我有个问题,一个事件的期望等于他所有事件可能行乘权值的和吗...为什么我有天考试的时候就不对呢...求大佬解释一下. 至于这道题,f[i][j]代表前i个有j个发动技能,这 ...

  4. P3239 [HNOI2015]亚瑟王 期望 dp

    LINK:亚瑟王 Saber!Excalibur! 比较难的期望dp. 可以发现如果暴力枚举所有的局面复杂度很高 . 转换的思路则是 期望的线性性. 求出每张牌的期望累加即可. 考虑每张牌的期望=这张 ...

  5. BZOJ4008: [HNOI2015]亚瑟王(期望dp)

    Time Limit: 20 Sec  Memory Limit: 512 MBSec  Special JudgeSubmit: 1952  Solved: 1159[Submit][Status] ...

  6. luoguP3239 [HNOI2015]亚瑟王 概率期望DP

    当初怎么想的来着.....又忘了...... 首先,总期望 = 每张卡片的期望之和 求期望,只要我们求出每张卡片被用掉的概率即可 如果直接上状态$f[i][j]$表示在第$i$轮中,第$j$张牌发动的 ...

  7. 【BZOJ4008】【HNOI2015】亚瑟王 概率DP

    链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...

  8. 洛谷 P3239 [HNOI2015]亚瑟王(期望dp)

    题面 luogu 题解 一道复杂的期望\(dp\) 思路来源:__stdcall 容易想到,只要把每张牌打出的概率算出来就可以求出\(ans\) 设\(fp[i]\)表示把第\(i\)张牌打出来的概率 ...

  9. BZOJ [HNOI2015]亚瑟王 ——期望DP

    发现每张卡牌最后起到作用只和是否打出去了有关. 而且每张牌打出去的概率和之前的牌打出去的情况有关. 所以我们按照牌的顺序进行DP. 然后记录$i$张牌中打出$j$张的概率,然后顺便统计答案. 直接对系 ...

  10. [HNOI2015]亚瑟王(期望+DP)

    题解 利用期望的线性性,可以把问题转化为求每一个卡牌造成期望的期望值. 然后我们就需要知道每一个卡牌发动技能的概率. 因为当某一张卡牌发动技能时这一轮会结束,这就很难直接计算了. 我们使用DP 设dp ...

随机推荐

  1. Linux find过滤掉没有查看权限的文件

    参考:https://blog.csdn.net/sinat_39416814/article/details/84993424 https://www.jianshu.com/p/2b056e1c0 ...

  2. netty模型简介

    Netty工作原理图 netty抽象出了两组线程池,BossGroup专门负责客户端 的连接,WorkerGroup专门负责网络读写. BossGroup和WorkerGroup 类型都是NioEve ...

  3. Jenkines邮件中添加图片

    1.在Jenkins的邮件插件 Email-ext中的Default Content内容编写html文件,简单模板如下: <html>  <head>  </head&g ...

  4. C语言 为什么要引入指针?

    https://blog.csdn.net/chengxuyuan997/article/details/81231679 正文 在说为什么引入指针这个问题前先带大家了解一下什么是指针? 指针最为简短 ...

  5. window10 安装 docker

    0.打开Hyper-V. 安装成功后,查看“任务管理器”: 1.下载安装程序. 2.一路"next"安装.安装成功后,桌面会出现图标: 3.双击该图标,成功运行后,右小角出现: 右 ...

  6. [USACO14MAR] 破坏Sabotage(二分答案,分数规划)

    题目链接 Solution 去掉中间一段区间 \([l,r]\) 后剩下的平均值可以表示为 : \[\frac{\sum^{n}_{i=1}{v_i}-\sum^{r}_{i=l}{v_i}}{n-( ...

  7. [CSP-S模拟测试]:count(树分块)

    题目描述 李华终于逃离了无尽的英语作文,重获自由的他对一棵树产生了兴趣.首先,他想知道一棵树是否能分成大小相同的几块(即切掉一些边,使得每个连通块的点数相同).然后,他觉得这个问题过于简单,于是他想知 ...

  8. form submission

    https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms This module provides a series of articles ...

  9. Delphi保存网页中的图片

    WEBBrowser已经打开了URL     V     =   WEBBrowser.Document.body.createControlRange();     V1   =   WEBBrow ...

  10. JSP中四种属性保存范围(2)

    1.session <%@ page language="java" contentType="text/html" pageEncoding=" ...