FZU - 2103 Bin Jing in wonderland

FZU - 2103 Bin & Jing in wonderland

  题目大意:有n个礼物,每次得到第i个礼物的概率是p[i],一个人一共得到了k个礼物,然后按编号排序后挑选出r个编号最大的礼物。现在给出r个礼物的编号,问能得到这r个礼物的概率。

  首先剩下的k-r个礼物中的编号肯定不能大于r个礼物中最小的编号id,我们就根据id把礼物分成两部分,一部分就是编号大于Id的礼物的,另一部分就是剩下的。对于编号大于id的礼物选取的概率,当前剩余nk1个空位,那么就是挑选num[i]个位置来放它,C[nk1][num[i]*pow(p[i],num[i]),然后概率累乘。而剩下的部分,空位有nk2=k-r+num[id]个,小于id是礼物概率之和是pn,那么我们枚举id礼物有i个,小于id的就有nk2-i个,第一个可以在[1,id)内任意取,第二个也是一样。。这部分概率就是pow(pn,nk2-i),那id礼物有i个这种情况下的概率就是C[nk2][i]*pow(p[id],i)*pow(pn,nk2-i),然后概率累加。最后两部分的概率相乘就是最终答案。

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 typedef long long ll;
 5 int num[25];
 6 ll C[55][55];
 7 double p[25];
 8 void init()
 9 {
10     for(int i=0;i<=52;i++)
11     {
12         C[i][0]=1ll;
13         for(int j=1;j<=i;j++)
14         {
15             if(j<=i/2)
16                 C[i][j]=C[i-1][j-1]+C[i-1][j];
17             else
18                 C[i][j]=C[i][i-j];
19         }
20     }
21 } 
22 double pow(double x,int y)
23 {
24     double ans=1.0;
25     while(y)
26     {
27         if(y&1)
28             ans*=x;
29         x*=x;
30         y>>=1;
31     }
32     return ans;
33 }
34 int main()
35 {
36     init();
37     int t,n,k,r;
38     scanf("%d",&t);
39     while(t--)
40     {
41         scanf("%d%d%d",&n,&k,&r);
42         for(int i=1;i<=n;i++)
43         {
44             scanf("%lf",&p[i]);
45             num[i]=0;
46         }
47         int id=n+1,x;
48         for(int i=1;i<=r;i++)
49         {
50             scanf("%d",&x);
51             id=min(id,x);
52             num[x]++;
53         }
54         int nk1=k,nk2=k-r+num[id];
55         double ans1=1.0,ans2=0.0,pn=0.0;
56         for(int i=id+1;i<=n;i++)
57         {
58             if(num[i])
59             {
60                 ans1*=1.0*C[nk1][num[i]]*pow(p[i],num[i]);
61                 nk1-=num[i];//用了num[i]个位置,减去 
62             }
63         }
64         for(int i=1;i<id;i++)
65             pn+=p[i];
66         for(int i=num[id];i<=nk2;i++)
67             ans2+=1.0*C[nk2][i]*pow(p[id],i)*pow(pn,nk2-i);
68         printf("%.6f\n",ans1*ans2);
69     }
70     return 0;
71 }
看概率过

 

  

转载于:https://www.cnblogs.com/LMCC1108/p/10809148.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

登上Science子刊,神经科学再次启发DNN设计!中科院揭秘介观自组织反向传播机制...

来源&#xff1a;AI科技评论作者&#xff1a;张铁林&#xff0c;徐波论文标题&#xff1a;A Mesoscale Plasticity for Efficient AI Learning在人工智能领域&#xff0c;目前人工神经网络中被广泛使用的反向传播算法&#xff08;Backpropagation&#xff0c;BP&#xff09;采用…

【计算机网络复习 数据链路层】3.5.1 信道划分介质访问控制

信道划分介质访问控制一、传输数据使用的两种链路二、介质访问控制2.1 频分多路复用 FDM2.2 时分多路复用 TDM2.3 统计时分复用 STDM2.4 波分多路复用 WDM2.5 码分多路复用 CDM一、传输数据使用的两种链路 点对点链路&#xff1a;两个相邻节点通过一个链路相连&#xff0c;没有…

linux的驱动开发——字符设备驱动

1.字符设备驱动 \qquad字符设备驱动是最基本&#xff0c;最常用的设备。它将千差万别的硬件设备采用统一的接口封装起来&#xff0c;屏蔽了硬件的差异&#xff0c;简化了应用层的操作。 2.描述所有字符设备的结构体 \qquad描述所有字符设备的结构体在linux内核目录下的\includ…

Nature:初步探索限制饮食如何影响肿瘤生长

来源&#xff1a;生物通近年来&#xff0c;有一些证据表明&#xff0c;饮食干预有助于减缓肿瘤的生长。麻省理工学院的一项新研究分析了小鼠的两种不同饮食&#xff0c;揭示了这些饮食是如何影响癌细胞的&#xff0c;并为为什么限制卡路里可以减缓肿瘤生长提供了解释。该研究检…

爬虫基本库request使用—爬取猫眼电影信息

使用request库和正则表达式爬取猫眼电影信息。 1.爬取目标 猫眼电影TOP100的电影名称&#xff0c;时间&#xff0c;评分&#xff0c;等信息&#xff0c;将结果以文件存储。 2.准备工作 安装request库。 3.代码实现 1 import json2 import requests3 from requests.exceptions i…

【计算机网络复习 数据链路层】3.5.2 ALOHA协议

一、纯ALOHA协议 纯ALOHA协议思想&#xff1a; 不监听信道&#xff0c;不按时间槽发送&#xff0c;随机重发。想发就发。 二、时隙ALOHA协议 时隙ALOHA协议的思想&#xff1a; 把时间分成若干个相同的时间片&#xff0c;所有用户在时间片开始时刻同步接入网络信道&#xff0c…

linux的驱动开发——设备号

1.设备号的获取 \qquad设备号的获取方法&#xff1a;自动分配&#xff1b;指定设备号注册 2.自动分配函数 \qquad函数&#xff1a;int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count, const char *name) \qquad功能&#xff1a;分配设备号 \qquad参数&…

说好的「机器人出租车」和「自动驾驶汽车」,到底在哪? 原创 我爱至尊宝 科技行者 昨天...

来源&#xff1a;TheNexWeb编译整理&#xff1a;科技行者再有几周就到万圣节了&#xff0c;今年让人害怕的东西可不止是鬼怪、还有更多晦暗不明的新难题。 就拿自动驾驶汽车来说&#xff0c;技术人员直到现在也不清楚怎么才能在完全无需人类介入的情况下实现自主行驶。哪怕是代…

在Windows平台下使用Gitblit搭建Git服务器图文解说

Windows平台下Git服务器搭建 一.java环境变量的设置 下载jdk并配置jdk的环境变量&#xff0c;JAVA_HOME,CLASSPATH以及PATH&#xff0c;最后在DOS窗口输入java -version检验是否配置成功。这里参见jdk环境变量配置相关教程。 二.下载新版Gitblit.下载地址&#xff1a;http://ww…

【计算机网络复习 数据链路层】3.5.3 CSMA协议

CSMA协议3.5.3 CSMA协议一、CSMA协议1.1 1-坚持CSMA1.2 非坚持CSMA1.3 p-坚持CSMA3.5.3 CSMA协议 一、CSMA协议 载波监听多路访问协议CSMA&#xff08;&#xff43;&#xff41;&#xff52;&#xff52;&#xff49;&#xff45;&#xff52; &#xff53;&#xff45;&…

linux的系统移植——序言

1.单片机裸机和带有操作系统OS的区别 \qquad裸机有三层&#xff0c;从上至下依次为&#xff1a;应用层、驱动层、硬件层&#xff1b;而带有OS的单片机有四层&#xff0c;从上至下依次为&#xff1a;应用层、内核层、驱动层、硬件层。 2.系统移植学习内容 \qquad四大块&#xf…

“厌氧动物”出现,科学家不清楚代谢方式,或颠覆对生命的认知

来源&#xff1a;科学杂志众所周知&#xff0c;动物的生存的基本条件就是氧气。日常生活中&#xff0c;我们不会感到氧气的存在&#xff0c;因为它是无色无味且无处不在的。可以说&#xff0c;地球上能孕育生命的原因除了有水资源以外&#xff0c;氧气的存在也是重中之重。可当…

【计算机网络复习 数据链路层】3.5.4 CSMA-CD协议

CSMA-CD协议3.5.4 CSMA/CD协议一、CSMA/CD协议二、传播时延对载波监听的影响三、截断二进制指数规避算法四、最小帧长问题3.5.4 CSMA/CD协议 一、CSMA/CD协议 载波监听多点接入/碰撞检测 CSMA/CD&#xff08;carrier sense multiple access with collision detection&#xf…

GB28181开放流媒体服务平台LiveGBS实际测试时问题排查

背景 在安防监控行业中GB28181协议可以实现获取直播流、录像、报警信息、通道状态等各种信息&#xff0c;基本满足了监控行业中的全部需求。LiveGBS就是一套开放的GB28181流媒体服务平台&#xff0c;提供用户私有化部署、提供标准RESTFul HTTP接口用于二次开发&#xff0c;将视…

6G网络智能内生的思考

来源&#xff1a;6G俱乐部作者&#xff1a;李琴&#xff0c;李唯源&#xff0c;孙晓文&#xff0c;胡玉双&#xff1a;中国移动通信有限公司研究院研究员。孙滔&#xff1a;中国移动通信有限公司研究院主任研究员、网络创新实验室技术经理。面向6G时代&#xff0c;网络将迎来新…

linux的系统移植——交叉编译器

1.为什么要有交叉编译器&#xff1f; \qquad一般电脑是X86架构&#xff0c;而单片机一般不是&#xff0c;比如单片机是ARM架构&#xff0c;那么gcc编译生成的程序只能在X86的架构上运行&#xff0c;而不能在ARM架构上运行&#xff0c;所以需要交叉编译器编译生成能在ARM架构上运…

【计算机网络复习 数据链路层】3.5.5 CSMA-CA协议

CSMA-CA协议CSMA/CA协议一、CSMA/CA协议二、CSMA/CD 与 CSMA/CACSMA/CA协议 一、CSMA/CA协议 载波监听多点接入/碰撞避免 CSMA/CA&#xff08;carrier sense multiple access with collision avoidance&#xff09; 发送数据前&#xff0c;先检测信道是否空闲。 空闲则发出…

实验四3

#include "stdafx.h" #include "stdio.h"int main(int argc, char* argv[]) {char a[81];int i;int num0,word0;char c;gets(a);for(i0;(ca[i])!\0;i)if(c )word0;else if(word0){word1;num;}printf("%d\n",num);return 0; } 转载于:https://www…

3 个问题:MIT专家论述关于阻碍AutoML发展的障碍

来源&#xff1a;ScienceAI编译&#xff1a;萝卜皮研究人员希望更多用户友好的机器学习系统将使非专家能够分析大数据——但这样的系统能完全自主吗&#xff1f;麻省理工学院计算机科学家 Kalyan Veeramachaneni 分享了他对自动化机器学习 &#xff08;AutoML&#xff09;现状、…

linux的系统移植——交叉编译工具集

1.交叉编译工具集 \qquad在我们安装交叉工具集时&#xff0c;不仅安装了arm-linux-gnueabi-gcc &#xff0c;还安装了很多工具&#xff0c;它们共同构成交叉编译工具集。 arm-linux-gnueabi-addr2line arm-linux-gnueabi-gcov-tool arm-linux-gnueabi-ar arm-linux…