列表

详情


NC20668. 红包期望

描述

众所周知,在过年的时候每家每户都会发红包,现在clccle和qn在一起抢*信红包,但是她们觉得这样没有意思,便开始了计算,如果当clccle和sqn为第k个抢红包的人时候,所抢到红包金额的期望是多少?(红包的大小在[0,2n/m]中均匀随机,特别的当红包的大小小于2n/m时,最后剩下的金额会被包入最后一个红包中)

输入描述

第一行,三个整数,m,n,T分别表示有一个红包可以被m个人领取,而且红包的总金额是n,接下来有T次询问

接下来T行,每行一个整数k,表示clccle和qn抢红包的时候是第几位

输出描述

共T行

每行一个整数,表示clccle和qn所得到的红包大小的期望

示例1

输入:

10 100 3
10
15
16

输出:

10
0
0

说明:

请自行证明(才不是因为窝证明之后你们就能直接出正解了呢qwq)

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 72ms, 内存消耗: 480K, 提交时间: 2020-07-21 21:18:52

#include <bits/stdc++.h>
using namespace std;
int main() {
    long long m, n, T, x;
    cin >>m>>n;
    cin>>T;
    while(T--){
        cin>>x;
        printf("%lld\n", x>m?0:n/m);
    }
}

C(clang 3.9) 解法, 执行用时: 18ms, 内存消耗: 480K, 提交时间: 2018-10-20 21:05:19

#include<stdio.h>
int main()
{
	long long a,b,c,d;
	scanf("%lld%lld%lld",&a,&b,&c);
	for(int i=1;i<=c;i++){
		scanf("%lld",&d);
	if(d>a)printf("0\n");
	else{
		printf("%lld\n",b/a);
	}
}
}

Pascal(fpc 3.0.2) 解法, 执行用时: 22ms, 内存消耗: 476K, 提交时间: 2018-10-20 21:14:32

var
    m,n,a:int64;
    t,i:longint;
begin
    read(m,n,t);
    for i:=1 to t do
    begin
        read(a);
        if a>m then writeln(0)
        else writeln(n div m);
    end;
end.

C++11(clang++ 3.9) 解法, 执行用时: 35ms, 内存消耗: 1276K, 提交时间: 2018-12-07 17:42:49

#include<cstdio>
int main(){long long a,b,c,d;scanf("%lld%lld%lld",&a,&b,&c);while(c--){scanf("%lld",&d);printf("%lld\n",d<=a?b/a:0);}}

上一题