//hdu4336
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
const int N=25;
double dp[1<<20],p[N];
//dp[s] = (1 - ∑( p[i] ))*dp[s]+ ∑( p[i]*dp[ s ^ (1<<i) ] ) +1;
//dp[s]=(∑( p[i]*dp[ s ^ (1<<i) ] ) +1)/∑( p[i] )
//s某位的1由0转化而来
int main()
{
int n;
while(scanf("%d",&n)==1){
for(int i=0;i<n;i++){
scanf("%lf",&p[i]);
}
dp[(1<<n)-1]=0;
for(int i=(1<<n)-2;i >= 0;i --){
double tmp=0,sum=0;
for(int j=0;j<n;j++)
if(!(i&(1<<j))){//s某位的1由0转化而来
tmp+=p[j]*dp[i^(1<<j)];
sum+=p[j];
}
dp[i]=(tmp+1)/sum;
}
printf("%lf\n",dp[0]);
}
return 0;
}
相关推荐
网课、网页视频倍速播放简单脚本
一个简单的网页视频倍速脚本
HDU 4336 Card Collector [概率DP]
In your childhood, do you crazy for collecting the beautiful cards in the snacks? ——每天你吃一包零食,零食中可能会出现一张要收集的卡片,卡片共N张,第I张出现的概率为Pi,ΣPi<=1,保证一包零食中最多只有一张卡片(可能没有),问收集完所有卡片的期望天数。
快充协议全兼容!HUSB390对比测试:iPhone/小米/华为哪个充电最快?
本文深入评测了HUSB390快充协议芯片的全兼容性能,展示了其在iPhone、小米和华为设备上的极速充电表现。通过智能功率分配算法和多协议并行处理引擎,HUSB390实现了高效的动态调压和温度控制,显著提升多设备充电效率。特别适合需要同时为不同品牌设备快充的用户。
【HDU4336】【Card Collector】【概率dp】
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3316 Accepted Submission(s): 1620 Special Judge Problem Description
RIGOL DS1102E示波器新手必看:从开机到捕获第一个波形的5分钟指南
本文为RIGOL DS1102E示波器新手提供了一份快速上手指南。内容涵盖从开机、探头校准到捕获第一个波形的完整流程,重点解析了触发设置、自动测量等核心操作,并指出了探头衰减比设置等常见误区,帮助用户快速掌握这款经典数字示波器的基本使用方法。
DAIC-WOZ数据集文件结构详解:CLNF特征文件、音频转录与PHQ8评分全解读
本文深入解析DAIC-WOZ数据集的文件结构,重点介绍CLNF特征文件、音频转录与PHQ8评分的详细内容。通过多模态数据处理实战指南,帮助研究者高效利用这一抑郁分析领域的重要资源,掌握面部动作单元、声学特征和文本转录的科学解读与应用技巧。
概率dp HDU 4336 Card Collector
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1980 Accepted Submission(s): 925 Special Judge Problem Description
基于Openrouter的API调用免费大模型
Openrouter 是一个 AI 模型聚合平台,整合了全球 200 多种主流 AI 模型,包括 GPT-4、Claude、Gemini 等,以及国产通义千问、DeepSeek 等。其核心优势是统一的 API 设计,开发者仅需少量代码即可与多个模型交互,还支持自动路由与回退机制。用户可通过 OpenAI SDK 或 LangChain 调用 Openrouter 中的模型。
概率dp HDU4336 Card Collector
Description In your childhood, do you crazy for collecting the beautiful cards in the snacks? They said that, for example, if you collect all the 108 people in the famous novel Water Margin, you wi
昇腾CANN实战:如何用DVPP+AIPP实现32路视频流毫秒级预处理(附性能对比)
本文深入探讨了昇腾CANN架构中DVPP和AIPP模块在32路视频流毫秒级预处理中的硬件加速技术。通过异构计算架构的优化,实现了从传统CPU方案的40.7毫秒到CANN方案3.4毫秒的显著性能提升,特别适用于智能安防领域的实时视频分析需求。文章详细解析了DVPP多通道并行设计和AIPP模型级预处理融合的技术细节,并提供了性能对比数据与实战调优经验。
将Keil中的变量数组导出
首先,写好导出数据的函数。
HDU 4336 Card Collector(概率DP)
题意:有n种卡片,吃零食的时候会吃到一些卡片,告诉你在一袋零食中吃到每种卡片的概率,求搜集齐每种卡片所需要买零食的袋数的期望。 思路:先状态压缩,然后概率DP 用d[i]表示由状态i到目标需要再买多少包,则状态转移方程为d[i] = p'*(d[i]+1) + sigma(d[ i | (1 #include #include #include #include #
YOLOv13改进策略【Head】| 引入RT-DETR中的RTDETRDecoder,替换检测头
本文记录的是基于RTDETRDecoder模块的YOLOv13目标检测改进方法研究。RT-DETR的模块通过,能为解码器提供高质量的初始,从而。相比v13原始的检测头,RT-DETR能,替换后能够更好的提高模型性能。
[HDU4336]:Card Collector(概率DP)
题目传送门 题目描述 夏川的生日就要到了。作为夏川形式上的男朋友,季堂打算给夏川买一些生日礼物。商店里一共有种礼物。夏川每得到一种礼物,就会获得相应喜悦值$W_i$(每种礼物的喜悦值不能重复获得)。每次,店员会按照一定的概率$P_i$(或者不拿出礼物),将第i种礼物拿出来。季堂每次都会将店员拿出来的礼物买下来。没有拿出来视为什么都没有买到,也算一次购买。众所周知,白毛切开都是黑的...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
HDU-4336 Card Collector(状压概率DP||容斥原理)
感觉做了这么多概率dp,还是离熟悉比较远 合集里看到的,结果一眼就看到是用状态压缩做,然后状态都出来了,转移就没什么难度了... 设dp[i]表示当前取到了i的二进制中位的为1的卡时,离达到目标状态还需要购买方便面的期望,初始状态:dp[(1<<n)-1]=0; 则dp[i]可以转化为: ①:下一袋方便面没有卡,或j卡已有,即:(∑p[j]+pp)*(dp[i]+1); ②:下一袋方面面存在j卡,且当前没有,即:(∑p[j]*(dp[i|(1<<j)]+1); 则状态转移方程为:dp[i]=(∑p[j]+p
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
hdu 4336 Card Collector (概率dp)
题目大意: 收集卡片,问收集齐n张卡片需要买多少包方便面的期望- -虽然不是方便面。 解题思路: 用1表示该位的卡片已经有,0表示没有。 dp[s] 表示拥有了s状态下1的卡片,还要买多少包才能凑齐n张卡片的期望。 所以 ,当你及其了所有的卡片。即 dp[(1 下面再来分析状态转移。 假设我们要收集齐 6 张,可是现在我们收集齐了五张。 那么你要中第六张。 就是第六
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
Hdu 4336 Card Collector (状态概率DP|容斥原理)
详细的题目大意与解析大家参考一下kuangbin的文章。 kuangbin链接 这边说一下自己对于kuangbin代码以及容斥原理位元素枚举的理解与解释,希望对大家有所帮助。 状态DP AC代码:状态压缩的思想我就不赘述了,我也只是略懂,这边仅仅分析一下状态方程 由于量比较多,我这边有的便用文字代替,有利于描述。 dp[i]表示i状态达到满状态(即收集满n个物品,以下称满状态)所需要的期
HDU4336 Card Collector (概率dp+状压dp)
http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:有n种卡片,一个包里会包含至多一张卡片,第i种卡片在某个包中出现的次数为pi,问将所有种类的卡片集齐需要买的包的期望。注意存在某个包中一张也没有。 分析:状态压缩有个挺显然提示,N<=20,这是在次落落的在提示你。 我们首先定义: dp[st] 表示 st 状态到目标状态 的期望...
HDU 4336 Card Collector 状压+概率dp
题目链接:点击打开链接 dp[i] 表示已经拥有卡片的状态为i, 还需要吃多少包才能拥有所有卡片, 显然 dp[(1 而答案就是dp[0]; 用样例二举例,下面dp方程内直接用二进制表示,为了方便观察,我们用最高位表示第一张卡片(P1=0.1),最低位表示第n张卡片(P2=0.4) dp[01] = (dp[01]+ 1)* P + (dp[11]+1) *P2 //其中P表示吃不
hdu4336Card Collector 概率dp+状态压缩
//给n个卡片每次出现的概率,求所有卡片都出现的需要抽的次数的期望 //dp[i]表示在状态的情况下到所有的卡片都出现的期望 //dp[i] = 1 + p1*dp[i] + ${p2[j]*dp[i]} + ${p3[k]*dp[i^(1 //$表示求和,p1表示没有出现卡片的概率 , p2[j]表示出现的卡片是当前状态已经出现的状态 //p3表示出现的卡片当前状态没有 //整理的dp
HDU 4336 Card Collector (概率DP 或 容斥原理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率为pi,每包至多一张卡片,也可能没有卡片, 求需要买多少包才能拿全N张卡片,求次数的期望。 概率DP思路:可以状压枚举每个状态,然后状态间进行转移,注意对于发生状态转移的概率的理解: 如果当前状态能够从...
hdu4336 Card Collector 状压+概率DP
N张卡片,没买一包,得到每一张卡片的概率为a1,a2...an。问平均状态下买多少包可以集齐所有卡片。就是求期望了,N=20,状态一共也就100W左右,记DP[k]为当前状态为k时,收集齐N张卡片的期望,那么可以推出状态转移方程DP[k]=1+(不增加新牌的概率)*DP[k]+sum(a[i]*dp[i]),其中状态i为状态k新添一张牌的状态,边界dp[1 #include #include
hdu4336 Card Collector 概率dp(或容斥原理?)
题意: 买东西集齐全套卡片赢大奖。每个包装袋里面有一张卡片或者没有。 已知每种卡片出现的概率 p[i],以及所有的卡片种类的数量 n(1 问集齐卡片需要买东西的数量的期望值。 一开始,自己所理解的期望值是原来学过的 一个值*它自身发生的概率,这没错,但是不知道在这一题里面 那个值是多少 经过重重思考和挣扎最后明白了,这一题中,n就是那个值,也是你要求的,感觉理解这个
hdu 4336 Card Collector(状态压缩概率dp)
题意: 给出n中卡片,并且给出买零食能获得每种卡片的概率,问凑齐n中卡片要买零食的包数的期望。 题解: n 那么方程的推导如下: 状态推导: 初始方程: dp[s] = (1-sum(p[i]))*dp[s] + sum(p[j])*dp[s] + sum(p[k])*dp[s|(1<<k)]; 其中: i=0、1、2、3、4、5......n 1-sum(p[i])表示没有
[概率dp] hdu 4336 Card Collector
概率dp
hdu - 4336 - Card Collector - 容斥 || 概率dp
http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意: 给出n种不同卡片在买的小吃力里面出现的可能,求凑齐n种卡片要买的小吃的平均数量。 思路: 根据官方解题报告做的: 设卡片的分布p=(p1,p2,...,pn),T(p)表示拿到所有卡片时买的零食数目,有 由容斥原理得, #include
1万+



被折叠的 条评论
为什么被折叠?



