正解:期望

解题报告:

传送门!

先放下题意,,,已知有总共有$n$张卡片,每次有$p_i$的概率抽到第$i$张卡,求买所有卡的期望次数

$umm$看到期望自然而然想$dp$?

再一看,哇,$n\leq 20$,那不就,显然考虑状压$dp$?

转移也很$easy$鸭,设$f_{s}$表示已经获得的卡片状态为$s$时候的期望次数

不难得到转移方程,$f_s=\sum_{i\notin{S}}f_{s|\{i\}}\cdot p_i+(1-\sum_{i\notin{S}}p_i)\cdot f_s+1$

(挺显然的就只瞎解释下,,,就状态是$s$之后,再抽一次,有可能抽到需要的$i$,就是$f_{s|\{i\}}\cdot p_i$,也可能没抽到需要的$i$,就是$(1-\sum_{i\notin{S}}p_i)\cdot f_s$,然后不管抽没抽到反正都抽了一次所以还要+1,就$over$辣!

变形下就是$\sum_{i\notin{S}}p_i\cdot f_s=\sum_{i\notin{S}}f_{s|\{i\}}\cdot p_i+1$

再除过去就$get$了$f$的转移方程辣

然后就做完辣,,,?

放下代码趴$QwQ$

#include<bits/stdc++.h>
using namespace std;
#define il inline
#define gc getchar()
#define ri register int
#define rb register bool
#define rc register char
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i) const int N=;
int n,tot;
double f[<<N],p[N]; int main()
{
while(scanf("%d",&n)!=EOF)
{
rp(i,,n-)scanf("%lf",&p[i]);
tot=(<<n)-;f[tot]=;
my(i,tot-,)
{
double sum=;f[i]=;
rp(j,,n-)if(~i&(<<j))f[i]+=p[j]*f[i|(<<j)],sum+=p[j];
f[i]=(f[i]+)/sum;
}
printf("%.4lf\n",f[]);
}
return ;
}

昂对了,$attention$,这题$Sample Output$是三位小数嘛,但是$output$里说了,当相差小于等于1$e$-4的时候是可以接受的,也就是说输出要保留到四位小数昂$QwQ$!

$upd$:

$get$了一个神奇的容斥,,,$orzorz$神仙$hl$

尝试自己理解了下结果好像失败辽,,,

先写下结论

就,$min-max$容斥中提出了这样一个式子:$E(\max\{x_1,x_2...x_n\})=\sum_{S}(-1)^{|S|+1}E(\min_{i\in{S}}\{x_i\})$

然后此处如果定义$x_i$表示第$i$张牌第一次出现的轮号,那其实就相当于这个$ E(\max\{x_1,x_2...x_n\})$指的就是最后的$ans$了

然后又有$\min_{i\in{S}}x_i=\frac{1}{\sum_{i\in{S}}p_i}$

然后用$dfs$枚下子集

就做完辣,,,?复杂度要好看很多呢$QwQ$

(神仙$hl$手推出了$min-max$容斥,,,太神了%%%

$code$就不放了知道思想的话具体实现还是挺$easy$的,有兴趣的去神仙$hl$的博客看趴,,,$QAQ$

昂然后关于这个$min-max$容斥,,,$gql$可能会尝试瞎证下$QwQ$,,,大概会新开篇博客,等下写完放链接趴$QAQ$←对不起咕了$TT$

最新文章

  1. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑
  2. mysql相似于oracle的to_char() to_date()方法
  3. paip.自适应网页设计 跟 响应式 设计的区别跟原理and实践总结
  4. eclipse启动不了报错java was started but returned exit code=13
  5. mysql 的load data infile要使用
  6. habase单机版安装及基本功能演示
  7. class基本使用
  8. Android系统源代码目录结构 “Android源代码”“目录结构”
  9. asp.net数据加载进度和模态窗口的完美打开,而且窗口不被阻止
  10. libcurl使用easy模式阻塞卡死等问题的完美解决
  11. SpringBoot整合Jest操作ES
  12. [LeetCode] 711. Number of Distinct Islands II_hard tag: DFS
  13. Java 常用对象-StringBuffer类
  14. redhat6下安装centos的yum源
  15. laychat聊天功能
  16. 【题解】Points, Lines and Ready-made Titles Codeforces 871C 图论
  17. TCP的发送缓冲区和接收缓冲区
  18. 160607、springmvc+spring使用taskExecutor
  19. css 样式表集合
  20. NOIP模拟2017.6.11解题报告

热门文章

  1. 在SAE上使用Flask插件
  2. 安装visualStudio 出现 cant install Microsoft.TeamFoundation.OfficeIntegration.Resources
  3. centos下iptables使用
  4. AtCoder Beginner Contest 075 C Bridge(割边)
  5. H3C 出站包过滤工作流程
  6. MySQL之Field‘***’doesn’t have a default value错误解决办法
  7. JDK自带的native2ascii工具介绍
  8. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架
  9. vue-learning:37 - router - 目录
  10. 2018-8-10-win10-uwp-萤火虫效果