首页 > 其他分享 >【NOIP2020普及组复赛】题2:直播获奖

【NOIP2020普及组复赛】题2:直播获奖

时间:2024-06-05 19:33:28浏览次数:31  
标签:600 hp mi 获奖 选手 直播 NOIP2020 100 复赛

题2:直播获奖

【题目描述】

N O I 2130 NOI2130 NOI2130 即将举行。为了增加观赏性, C C F CCF CCF 决定逐一评出每个选手的成绩,并直播即时的获奖分数线。本次竞赛的获奖率为 w % w\% w%,即当前排名前 w % w\% w% 的选手的最低成绩就是即时的分数线。

更具体地,若当前已评出了 p p p 个选手的成绩,则当前计划获奖人数为 m a x ( 1 , ⌊ p ∗ w % ⌋ ) max(1,⌊p∗w\%⌋) max(1,⌊p∗w%⌋),其中 w w w 是获奖百分比, ⌊ x ⌋ ⌊x⌋ ⌊x⌋ 表示对 x x x 向下取整, m a x ( x , y ) max(x,y) max(x,y) 表示 x x x 和 y y y 中较大的数。如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多。

作为评测组的技术人员,请你帮 C C F CCF CCF 写一个直播程序。

【输入文件】

第一行有两个整数 n , w n,w n,w。分别代表选手总数与获奖率。

第二行有 n n n 个整数,依次代表逐一评出的选手成绩。

【输出文件】

只有一行,包含 n n n 个非负整数,依次代表选手成绩逐一评出后,即时的获奖分数线。相邻两个整数间用一个空格分隔。

【输入样例1】

10 60
200 300 400 500 600 600 0 300 200 100

【输出样例1】

200 300 400 400 400 500 400 400 300 300

【样例1说明】

在这里插入图片描述

注意,在第 9 9 9 名选手的成绩评出之后,计划获奖人数为 5 5 5 人,但由于有并列,实际会有 6 6 6 人获奖。

【输入样例2】

10 30
100 100 600 100 100 100 100 100 100 100

【输出样例2】

100 100 600 600 600 600 100 100 100 100

【数据规模】

各测试点的 n n n 如下表:

在这里插入图片描述
对于所有测试点,每个选手的成绩均为不超过 600 600 600 的非负整数,获奖百分比 w w w 是一个正整数且 1 ≤ w ≤ 99 1≤w≤99 1≤w≤99。

在计算计划获奖人数时,如用浮点类型的变量(如 C / C + + C/C++ C/C++ 中的 f l o a t float float 、 d o u b l e double double, P a s c a l Pascal Pascal 中的 r e a l real real 、 d o u b l e double double 、 e x t e n d e d extended extended 等)存储获奖比例 w % w\% w%,则计算 5 × 60 % 5×60\% 5×60% 时的结果可能为 3.000001 3.000001 3.000001,也可能为 2.999999 2.999999 2.999999,向下取整后的结果不确定。因此,建议仅使用整型变量,以计算出准确值。

【代码如下】:

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

priority_queue<int> ma_hp;
priority_queue<int, vector<int>, greater<int> > mi_hp;

int n, w, now, num;

void qwq() {
  if (mi_hp.size() < now) {
    mi_hp.push(ma_hp.top());
    ma_hp.pop();
  }
  if (mi_hp.size() > now) {
    ma_hp.push(mi_hp.top());
    mi_hp.pop();
  }
}

void push(int num) {
  if (num >= ma_hp.top())
    mi_hp.push(num);
  else
    ma_hp.push(num);
  qwq();
}

int main() {
  scanf("%d%d", &n, &w);
  ma_hp.push(0);
  for (int p = 1; p <= n; p++) {
    now = max(1, p * w / 100);
    scanf("%d", &num);
    push(num);
    printf("%d ", mi_hp.top());
  }
  return 0;
}

标签:600,hp,mi,获奖,选手,直播,NOIP2020,100,复赛
From: https://blog.csdn.net/lpstudio/article/details/139480173

相关文章

  • CSP历年复赛题-P2671 [NOIP2015 普及组] 求和
    原题链接:https://www.luogu.com.cn/problem/P2671题意解读:找到所有符合条件的三元组,累加三元组的分数,结果对10007取模。解题思路:仔细读题,并分析数据规模,1~4个数据点可以通过O(n^2)复杂度解决,也就是枚举法。1、枚举法要求x<y<z,y−x=z−y,移项可得x+z=2*y,并且c......
  • Vlog与直播收益:走进数字内容创业的新时代
    随着数字化时代的到来,互联网和社交媒体的普及,内容创业已经成为了许多人追求的职业。在内容创业领域,Vlog和直播无疑是两大热门的方式,吸引了大量创作者和观众。这两种方式不仅改变了传统媒体的格局,也开辟了新的收益模式和商业机会。Vlog,即视频博客,是指通过视频的形式记录生活、分享......
  • AI数字人直播克隆系统源码部署,哪些品牌资历深?
    随着人工智能技术的不断发展成熟,AI数字人的应用场景日益广泛。在此背景下,AI数字人直播也持续上涨,并隐隐有了成为流行的趋势。在此背景下,AI数字人直播克隆系统源码部署也成为了行业中一大热门板块。就目前的市场情况而言,AI数字人直播克隆系统源码部署这一板块中的竞争十分激烈......
  • 【NOIP2019普及组复赛】题3:纪念品
    题3:纪念品【题目描述】小伟突然获得一种超能力,他知道未来T天N种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易无限次:1.任选一个纪念品,若手上有足够金币,以当日价格购买该......
  • 【NOIP2019普及组复赛】题1:数字游戏
    题1:数字游戏【题目描述】小K同学向小PPP同学发送了一个长度为88......
  • CSP历年复赛题-P1982 [NOIP2013 普及组] 小朋友的数字
    原题链接:https://www.luogu.com.cn/problem/P1982题意解读:特征值:第i个同学的特征值是1~i中最大子段和,分数:第i个同学分数是前1~i-1个同学的分数+特征值最大值,求最大分数。解题思路:第一步:先计算特征值f[i],f[i]等于1~i中所有数的最大子段和,所以借助最大子段和的DP方法,每次计算以i......
  • 超简单的最新钉钉直播回放下载教程(一分钟就能学会啦)
    所需软件:钉钉,浏览器(这里以谷歌浏览器为例),m3u8下载器,猫抓工具思路:在浏览器中打开钉钉直播回放,抓取m3u8文件,利用m3u8下载器完成下载目的:在浏览器中打开钉钉直播回放,然后用下载器一步下载1.我们直接的打开我们的钉钉软件,然后用分享的方式把我们的课程链接复制下来到浏览器里面......
  • CSP历年复赛题-P1981 [NOIP2013 普及组] 表达式求值
    原题链接:https://www.luogu.com.cn/problem/P1981题意解读:中缀表达式求值,只有+,*,没有括号,保留后4位。解题思路:中缀表达式求值的典型应用,采用两个栈:符号栈、数字栈,对于没有括号的情况,只需要如下步骤:1、遍历表达式每一个字符2、如果遇到数字,则持续提取数字,保存整数到数字栈3、......
  • 掌握这些方法,无人直播不再怕封号
    在无人直播领域,封号是一个让人头疼的问题。然而,并非所有人都会遭遇封号,这其中究竟有何秘诀呢?本文将为你揭开谜底,告诉你如何利用技术手段实现安全防封。首先,要了解平台的规则和政策。不同的平台对于无人直播的规定可能不同,因此在开始之前,务必仔细阅读并遵守相关规定。这样......
  • 【NOIP2018普及组复赛】题1:标题统计
    题1:标题统计题目描述凯凯刚写了一篇美妙的作文,请问这篇作文的标题中有多少个字符?注意:标题中可能包含大、小写英文字母、数字字符、空格和换行符。统计标题字符数时,空格和换行符不计算在内。【输入格式】输入文件只有一行,一个字符串......