题解:P15083 [ICPC 2024 Chengdu R] Recover Statistics

· · 题解

本题自带交互库,我们需要输出答案正确就行了。

问题

问题分析:

你需要根据给定的 P50、P95、P99 值,构造一个长度在 10010^5 之间的数据集,满足:

要满足百分比为整数的要求,也是就说 n50\%、95\%、99\%需要是整数,所以 n 需要是 100 的倍数。

那么,选择 n=100 是最简单的方案。

我们需要分 4 段构造数据集:

代码

代码(注释精读版):

#include"bits/stdc++.h"
using namespace std;

const int MAXN=1e2+5;
int sj[MAXN];
int a,b,c;
int main(){
    scanf("%d%d%d",&a,&b,&c);
    for(int i=1;i<=100;i++){
        //既然是小于等于,不如直接设成等于
        if(i<=50)sj[i]=a;//前50个数据=P50
        else if(i<=95)sj[i]=b;//51-95个数据=P95
        else if(i<=99)sj[i]=c;//96-99个数据=P99
        else sj[i]=c+1;//最后1个要大于P99
    }
    printf("100\n");//长度为100
    for(int i=1;i<=100;i++){
        printf("%d ",sj[i]);//输出数据
    }
    return 0;
}