CSP-J 2020 T2 直播获奖

#include<bits/stdc++.h>
using namespace std;
int f[605];
int main(){
    int n,w;
    cin>>n>>w;
    for(int i=1;i<=n;i++){
        int x;
        cin>>x;
        f[x]++;
        int sum=0;
        for(int j=600;j>=0;j--){
            sum+=f[j];
            if(sum>=(max(1,i*w/100))){
                cout<<j<<" ";
                break;
            }
        }
    }
    return 0;
}

CSP - J 2020复赛真题包含以下题目: - **T1:优秀的拆分**:该题要求将一个数分解为若干个不同的 2 的正整数次幂,奇数不存在优秀的拆分,若 n 是偶数,可将 n 进行 10 进制到 2 进制的转换。有 60 分代码示例,同时也有完整的解题代码。示例代码如下: ```cpp #include <bits/stdc++.h> using namespace std; /* 定义:分解为了若干个不同的 2 的正整数次幂 性质:是偶数,奇数不存在优秀的拆分 思路: 如果 n 是偶数,将 n 进行进制转换 10 -> 1010 */ int a[110],n,k = 0;//k 表示 a 数组的下标 int main(){ cin>>n; //特判奇数的情况 if(n % 2 != 0){ cout<<-1; return 0; } //进制转换 int t = 1;//表示 2 的次方 while(n != 0){ if(n % 2 != 0){ k++; a[k] = t; } t = t * 2; n = n / 2; } //逆序输出结果 for(int i = k;i >= 1;i--){ cout<<a[i]<<" "; } return 0; } ``` 60 分代码示例: ```cpp #include <bits/stdc++.h> using namespace std; //看数据范围,拿部分分 //1、20%的数据,n<=10 //220%的数据,n是奇数 //3、20%的数据,n是2的正整数次幂 int n; int main(){ cin>>n; //奇数 if(n%2==1){ cout<<-1; return 0; } //小于等于10的偶数 if(n==2) cout<<2; else if(n==4) cout<<4; else if(n==6) cout<<4<<" "<<2; else if(n==8) cout<<8; else if(n==10) cout<<8<<" "<<2; else{//n为2的整数次幂 cout<<n; } return 0; } ``` - **T2直播获奖**:NOI2130 即将举行,CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为 w%,即当前排名前 w% 的选手的最低成绩就是即时的分数线 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值