标签:else return math 而且 amp 现在 开始 rac 输出
众所周知,在过年的时候每家每户都会发红包,现在clccle和qn在一起抢*信红包,但是她们觉得这样没有意思,便开始了计算,如果当clccle和sqn为第k个抢红包的人时候,所抢到红包金额的期望是多少?(红包的大小在[0,2n/m]中均匀随机,特别的当红包的大小小于2n/m时,最后剩下的金额会被包入最后一个红包中)
第一行,三个整数,m,n,T分别表示有一个红包可以被m个人领取,而且红包的总金额是n,接下来有T次询问
接下来T行,每行一个整数k,表示clccle和qn抢红包的时候是第几位
共T行
每行一个整数,表示clccle和qn所得到的红包大小的期望
10 100 3
10
15
16
10
0
0
对于全部数据
1<=m<=n<=1e18,1<=T<=50000
#include<iostream>
using namespace std;
int main(){
long long m,n;
int T;
scanf("%lld%lld",&m,&n);
scanf("%d",&T);
while(T--){
int a;
scanf("%d",&a);
if(a>m){
printf("0\n");
}
else{
printf("%lld\n",n/m);
}
}
return 0;
}
期望就是每种结果的概率乘以结果的总和
红包大小的期望就是红包大小乘以这种大小的概率的总和,,红包大小的概率是固定的,都是\(\frac{1}{2n/m}\),但是红包的大小不确定,它是在[0,2n/m]中均匀分配的,所以就积分下,\(\int_{0}^{\frac{2n}{m}}\frac{2n}{m}d\frac{2n}{m}\),得出的结果再乘以固定的红包大小概率。最终结果得到\(n/m\)。
还要注意,当排名k大于红包能分配的人数m时,主人公们所抢到红包的期望就一定是0了,因为这时根本就抢不到了。
所以当k>m时,就输出0,当k\(\leq\)m时,就输出n/m。
标签:else return math 而且 amp 现在 开始 rac 输出
原文地址:https://www.cnblogs.com/fate-/p/13360042.html