[HDU] 4336 Card Collector 期望dp

PostGIS 小白入门详细指南 PostGIS 是 PostgreSQL 的一个扩展,它将 PostgreSQL 转变为一个功能强大的空间数据库,使其能够存储、查询和分析地理空间数据。PostGIS 遵循开放地理空间联盟(OGC)的标准,支持各种空间数据类型和操作,如点、线、多边形、缓冲区、空间连接等。存储各种空间数据类型(如几何类型和地理类型)空间索引,提高查询性能丰富的空间函数和操作支持投影和坐标系统转换城市规划与管理环境监测与分析物流与运输优化地图制作与可视化位置服务与导航。 阅读详情

Card Collector

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4622 Accepted Submission(s): 2340
Special Judge

Problem 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 will win an amazing award.

As a smart boy, you notice that to win the award, you must buy much more snacks than it seems to be. To convince your friends not to waste money any more, you should find the expected number of snacks one should buy to collect a full suit of cards.

Input
The first line of each test case contains one integer N (1 <= N <= 20), indicating the number of different cards you need the collect. The second line contains N numbers p1, p2, …, pN, (p1 + p2 + … + pN <= 1), indicating the possibility of each card to appear in a bag of snacks.

Note there is at most one card in a bag of snacks. And it is possible that there is nothing in the bag.

Output
Output one number for each test case, indicating the expected number of bags to buy to collect all the N different cards.

You will get accepted if the difference between your answer and the standard answer is no more that 10^-4.

Sample Input
1
0.1
2
0.1 0.4

Sample Output
10.000
10.500

这道题稍微要复杂一点, 不过也很简单.
题目大意就是说有n张卡, 你每次可以买一个卡包, 这个卡包可能会有一张卡或者没有卡, 每张卡都有一定几率被抽到,问将n张卡集全的期望买包次数.

n只有20…范围一看就想到状压. 用dp[i]来表示i这种状态还需买包的期望次数. i就是拆成二进制下的状态, 第i位是1就说明第i张卡已被抽到, 是0就没有.

仍然选择倒着来, 那么dp[(1 << n)-1] = 0, 因为此时二进制下每位都是1, 代表卡牌都选了, 那么就不需要买包了. 对于当前i状态, 如果买了一个卡包, 出来的卡是已收集之中的, 那么就是dp[i]转移到dp[i], 买了一包没有卡也是dp[i] 转移到 dp[i]. 对于其他情况则是转移到 dp[i | (1 << j)] (卡包抽到第j张卡).
没抽到的几率就是1-所有卡的被抽到的概率之和.
那么由期望的线性转移方程就是
dp[i] = dp[i] * x + dp[i | (1 << j] * p[j]… + 1
(x为抽到已有的或者没抽到的概率之和).
移项之后变成 dp[i] = (dp[i | (1 << j)]… + 1) / (1 - x);
dp[0]就是答案.

#include<stdio.h>
const int maxn = 21;
int lim, n;
double sum, no, none, p[maxn], dp[1 << maxn];
int main(){
    while(scanf("%d", &n) != EOF){
        none  = 1.0, lim = (1<<n) - 2;
        for(int i = 0; i < n; ++i) scanf("%lf", &p[i]), none -= p[i];
        for(int i = lim; ~i; --i){
            sum = 1, no = 0;
            for(int j = 0; j < n; ++j)
                if(i & (1<<j)) no += p[j];
                else sum += dp[i | (1<<j)] * p[j];
            dp[i] = sum  / (1 - none - no);
        }
        printf("%.5f\n", dp[0]);
    }
}
paddle 43 用onnxruntime实现ppyoloe模型的部署(含python和c++版本) PP-YOLOE+是PP-YOLOE模型的升级版,PP-YOLOE+_l在COCO test-dev2017达到了53.3的mAP, 同时其速度在Tesla V100上达到了78.1 FPS。PP-YOLOE+_s/m/x同样具有卓越的精度速度性价比。paddle官方只给出了基于paddle框架的部署案例,为了更好的部署,为此实现将paddle模型转换为onnx模型,然后在python下实现onnxruntime部署。后续会补充c++ onnxruntime部署 阅读详情

相关推荐

在QTableWidget中添加支持多选的QComboBox并显示

定义自定义表格项,主要用于显示复选框自定义的多选ComboBox类自定义委托类,用于表格中的多选ComboBox代码展示如下。

YUyang0304的博客 2780

HDU 4336 Card Collector:期望dp + 状压

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:   一共有n种卡片。每买一袋零食,有可能赠送一张卡片,也可能没有。   每一种卡片赠送的概率为p[i],问你将n种卡片收集全,要买零食袋数的期望。 题解:   表示状态:     dp[state] = expectation     state表示哪些卡片...

a1392136的博客 154

ZEMAX学习 6.一个照相物镜的设计

曲线越平滑表示场曲越小,曲线越接近水平,系统边缘与中心对比度越接近,虚实越接近表示色差和色散越好;第1个面设计不合理,出现前后表面相交的情况,点击第1面厚度,选择边缘厚度,设置为0.1,第1面厚度被控制在0.1mm厚,系统根据这一设置始终保持第1面边缘厚度为0.1mm。要求:设计一个照相物镜,焦距f=9mm,F#为4,视场角40°;添加有效焦距操作数EFFL 9mm 权重为1,设置优化变量,如下图,ctrl+shift+o打开优化界面。报告中系统数据有效焦距为67.381mm,设计要求为9mm;

qq_24542783的博客 4709

hdu-4336 Card Collector状态压缩|期望dp】

题意:买东西集齐全套卡片赢大奖。每个包装袋里面最多一张卡片,最少可以没有。且给了每种卡片出现的概率 p[i],以及所有的卡片种类的数量 n(1 用二进制状态来表示每种物品是否出现过。例如 10101的前一个状态就有00101、10001、10100. E(stu)表示满足stu的期望。E(stu)=∑E(pre_stu)*p'[x]+E(stu)*none. p'[x]表示stu在第

a915800048的专栏 487

Power Automate 最常用的十大场景以及解决方案

3.2 获取指定主题含有附件邮件,然后读取csv附件内容,插入数据库,调度执行存储过程,最后通过Power automate 发送paginated report 特殊格式报表给发件人。Power Automate 作为微软推出的自动化工作流工具,其适用场景非常广泛,尤其在数据库查询自动化方面能显著提升效率。2.8发送邮件,把生成csv文件当作附件,把生成html当作邮件内容在邮件boty展示。3.1 读取数据库数据,定时发送预警邮件并抄送附件和展示内容在邮件中。:已有微软产品栈,需快速实现部门级自动化。

qq_24388807的博客 3684

MIPI DPHY接口(基于Xilinx FPGA实现)案例分析

在Xilinx FPGA实现MIPI DPHY接口的案例(包括CIS协议层)。截止目前为止,Xilinx仅在Ultrascale+及其以上版本的FPGA IO可直接支持MIPI 电平输入,其他的,都需要转换成LVDS来接收。

ONEFPGA的博客 5624

HDU4336题解(概率dp|容斥原理)

HDU4336题解题意小浣熊干脆面里装有英雄卡,有n种英雄卡,一包干脆面里最多有一张英雄卡,最少没有英雄卡,想知道在期望意义上买多少包干脆面可以把英雄卡集齐。笺释原理1期望dp,在考虑期望dp的时候,要注意它和概率dp的本质都是递推。这一点给出了用dp的思想解决统计学问题的理由,并且给出为什么我们不需要很高的统计学知识或者数论知识也能在acm中解决统计学和数论问题的理由:我们用到的只是穿上统计学外衣

SoniciSika 1103

【yolo】YOLOv8模型导出完全指南:从PT到ONNX及其他格式的完整实践

摘要:本文全面介绍了YOLOv8模型从PT格式导出为ONNX等部署格式的完整流程与最佳实践。重点解析了关键参数(如format、imgsz、simplify)的作用机制,特别强调输入尺寸imgsz会自动继承训练尺寸的特性,并提供了ONNX、TensorRT等格式的典型导出配置方案。文章还总结了常见问题解决办法,推荐使用simplify优化模型性能,同时分享了通过C#实现模型重命名的实用技巧。最后指出"训练决定能力,导出定义接口"的核心原则,帮助开发者高效完成模型部署转换。

songhuangong123的博客 1916

HDU - 4336 (容斥)

题意:给你n个奖,每个机会只能中一个奖,中奖的概率分别是{p1,p2,p3......pn};并且这些奖是两两没有交集。(pi*pj=0)问,需要多少次才能把所有奖都中完的期望值。 先来分析:中所有奖事件A={{中奖A1},{中奖A2},{中奖A3}.....{中奖An}},是不是相当于A事件满足了Ai的所有性质。(这就是容斥的基本定理。) 那怎么计算期望?先分析一个,也就是例一,E...

weixin_33928467的博客 637

Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程

本文主要介绍了Mac 下 OpenClaw 安装全记录:从零到一的保姆级图文教程,希望能对学习使用OpenClaw 的同学们有所帮助。 文章目录 1. 背景 2. 安装教程 2.1 安装OpenClaw 2.2 配置模型 2.3 对话 3. 后续使用步骤 4. 关闭程序

weixin_43178406的博客 11万+

程序化广告ADX系统架构设计与实现

摘要: 本文详细介绍了程序化广告交易平台(ADX)的系统架构设计与实现。ADX作为连接广告主与媒体的核心平台,采用基于腾讯云和阿里云的微服务架构,包含网络基础设施、负载均衡、消息处理、核心业务服务和多级数据存储等层次。重点解析了Kafka消息队列处理高并发广告请求、Redis实时统计关键指标等核心技术实现,并提供了Java代码示例展示广告请求处理、竞价流程等核心功能。该系统通过分层设计和分布式组件,实现了高性能、高可用的程序化广告交易能力。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 764

HDU4336 Card Collector【容斥原理】

题目大意: 每包零食里有一张卡牌,总共有N种不同的卡牌,得到这N种卡牌的概率分别为P[i](1 <= i <= N)。 求收集到所有卡牌的期望是多少。 思路: Pi表示得到第i张卡牌的概率,Ei表示得到第i张卡的期望。 假设现在有两张卡牌,由题意可知: E1 = 1/P1,E2 = 1/P2,E12(表示肯定买到1或2其中一包的期望) = 1/(P1+P2)。 当我们计算E1和E2的时候,E12是重复计算了2次,应该减去一次。根据容斥定理可知: E = E1 + E2 - E12。 同理,三张牌的时候:

程序员充电站(itcharge) 2244

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【期望DP】 HDU 4336 Card Collector

通道 题意:有n种卡片,吃零食的时候会吃到一些卡片,告诉你在一袋零食中吃到每种卡片的概率,求搜集齐每种卡片所需要买零食的袋数的期望 思路: 假设S状态中为1的数位表示还没有拿到的卡片,那么每次可能会拿到这其中的某一张卡片, 也可能拿到原来已经拿到的卡片, 还可能一张卡片也拿不到 后两种情况的状态不变。dp[0]=0;(表示每一种卡片都取完了,期望当然是0喽)dp[S]=sum...

125

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDU4336——期望+状态压缩DP——Card Collector

http://acm.hdu.edu.cn/showproblem.php?pid=4336 转自http://www.cnblogs.com/zhj5chengfeng/archive/2013/03/02/2939601.html 做法分析 由于卡片最多只有 20 种,使用状态压缩,用 0 表示这种卡片没有收集到, 1 表示这种卡片收集到了 令:f[s]表示已经集齐的卡片种...

dgjm4087的博客 139

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

期望dp-hdu-4336-Card Collector

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4336 题目大意: 有n种卡片,每包中至多有一种卡片,概率分别为p1,p2,...pn,可能有的没有卡片,求包数的期望,使得每种卡片都有。 解题思路: 由于n最多只有20,可以进行状态压缩。 dp[i]表示在状态i获得的卡片的情况下,得到最后结果所需的包数期望。 则dp[i]=no*(d

cc_again的专栏 2103

hdu4336 Card Collector(期望dp)

hdu4336题目就是小时候的集卡,有N张卡,给出每张卡获得的概率,有可能没有卡,问开包的期望。思路概率正推期望逆推,开一个 1<代码#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring>using namespace std;typedef long long

天道酬勤 504

HDU 4336 Card Collector:状压 + 期望dp

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4336 题意:   有n种卡片(n <= 20)。   对于每一包方便面,里面有卡片i的概率为p[i],可以没有卡片。   问你集齐n种卡片所买方便面数量的期望。 题解:   状态压缩。   第i位表示手上有没有卡片i。   表示状态:     dp[sta...

a1392136的博客 148

HDU 4336 Card Collector (期望+状压dp)

题意:给出n种图案在每一张卡片上的出现的概率,一张卡片只能出现一种图案,或者不出现,求集齐所有图案所需的卡片期望数。 题解:期望+状压dp 二进制压缩,dp[i]dp[i]dp[i]表示获得当前状态之后还需要的卡片数。 考虑两种情况。令p为当前状态未包含图案的概率和(Σp[j])。 ①抽到已经有的图案或未抽到 dp[i] += (dp[i] + 1) * (1 - p) ②抽到未有的图案 dp[i] += (dp[i | 1 << (j - 1)] + 1) * p[j] 化简一下得dp[i]即

gongyuandaye的博客 225

[HDU 4336] Card Collector (期望DP)

HDU - 4336 有 N张卡片,有 pip_i的概率抽到第 i张 求集齐所有卡片的期望步数 注意 Σpi≠1\Sigma{p_i} \neq 1 所以有可能一次什么也抽不到,设 m′m'是 mm的子集,列出公式 expt[m]=(1−Σpi)expt[m]+Σpiexpt[m′]+1expt[m] = (1- \Sigma{p_i})expt[m] + \Sigma{ p_i ex

MisDeer's blog 316

HDU4336 Card Collector DP求期望+状压

题目大意:要集齐N张卡片,每包干脆面出现每种卡片的概率已知,问你集齐N张卡片所需要的方便面包数的数学期望(N<=20)。 solution: 由于N<=20,我们可以考虑状压,设dp[S]表示牌的状态为S时的需要的方便面包数的数学期望。 那么,对于每一个状态,考虑枚举每一张牌i(摸到了i),此时: ① 如果S中不含i,dp[S]+=(dp[S|(1<<i-1)]+1)*p[...

weixin_30699465的博客 71

HDU4336. Card Collector(期望DP/容斥定理)

题目链接:https://vjudge.net/contest/373128#problem/H 题意:收集卡片,给出每一张卡片的抽取概率,问预期抽多少次才能够全部收集完 解题思路: 第一种:利用期望DP 先说一下期望的递推公式 i/n为抽到已经有的情况的概率 f[i]为当前状态,f[i+1]为下一个状态,1为代价值(无论能否成功转移都要1次机会)。 转化可以得到 本题的递推公式是这样:f[i]=∑p[ i→j ]f[ j ]+∑(1-p[ i→j ])f[ i ]+w[ i→j ] 利用二进制表示所有

Buyi的博客 363

『状态压缩·期望DP』HDU4336:Card Collector

题目描述 题解 我们设f[s]f[s]f[s]表示选择状态为s的期望次数。 如果购买了新的,贡献是f[s去掉k]×pkf[s去掉k]\times p_kf[s去掉k]×pk​ 如果不购买新的,概率是总数减去购买新的的概率(不能计算二进制位中0的概率,因为相加可能不等于1),即∑k∈spk\sum_{k∈s} p_k∑k∈s​pk​。 因此,我们就得到了状态转移方程: f[s]=∑k∈sf[s...

Ronaldo7_ZYB的博客 222

HDU 4336 Card Collector (概率-期望DP)【模板】

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 will win an amazing award. As a smart boy, you notice that to win the a

风的记忆 391

HDU4336 Card Collector(期望状压dp或minmax容斥)

期望dp第三题. 这个还是老套路嘛,看到n=20n=20n=20想到状压所有状态 那么定义dp[x]dp[x]dp[x]为卡片状态是xxx时到达终点的期望 那么有dp[(1<<n)−1]=0:dp[(1<<n)-1]=0:dp[(1<<n)−1]=0:到了终点期望肯定是0嘛!! 至于转移,xxx可以从任何一个自己没有包含的卡片来转移 设xxx不包含第a,ba,ba,b张卡片 那么dp[x]=dp[x+(1<<a)]∗pa+dp[x+(1<<b)]∗

jziwjxjd的博客 555

hdu 4336 Card Collector 概率DP 求期望

Card Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3538    Accepted Submission(s): 1739 Special Judge Problem Description

便纵有千种风情 457

HDU 4336 Card Collector——状压+期望dp

题意: 有N(1&lt;=N&lt;=20)张卡片,每包中含有这些卡片的概率为p1,p2,````pN. 每包至多一张卡片,可能没有卡片。 求需要买多少包才能拿到所以的N张卡片,求次数的期望。 思路: 状压思路很好想,注意推出状态转移方程后注意移项(可能要移多项) #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;...

hao_zong_yin的博客 488
上一篇: [HDU] 3853 LOOPS 期望dp入门
下一篇: [UVA]11021 Tribles
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值