首页 > 其他分享 >P7072 [CSP-J2020] 直播获奖

P7072 [CSP-J2020] 直播获奖

时间:2023-10-02 09:22:35浏览次数:43  
标签:cnt 成绩 int 获奖 选手 读入 J2020 CSP P7072

Problem

考查知识点:桶优化。

题目简述

竞赛的获奖率为 \(w\%\),即当前排名前 \(w\%\) 的选手的最低成绩就是即时的分数线。

若当前已评出了 \(p\) 个选手的成绩,则当前计划获奖人数为 \(\max(1, \lfloor p \times w \%\rfloor)\),如有选手成绩相同,则所有成绩并列的选手都能获奖,因此实际获奖人数可能比计划中多。

求:每个选手的成绩读入后,逐一输出当时实时的获奖分数线。

暴力解法

每读入一个选手的成绩,计算出计划获奖人数 \(p\) ,然后 \(sort\),输出前 \(a_p\)。

时间复杂度估算:
\(O(n \times n \log n)\),显然达到了 \(10^{10}\)。

考虑优化

关键在排序的地方。这道题,数据范围中提到了

"对于所有测试点,每个选手的成绩均为不超过 \(600\) 的非负整数"

这就给我们一个启发:可以用桶排序!

思路整理

设 \(cnt\) 数组为每个数出现的次数。

每次读入成绩 $x $,cnt[x]++,然后计算出获奖人数 \(p\),从最大数值 \(600\) 循环到 \(0\),当数到 \(p\) 人的时候,输出下标。

代码

#include <iostream>
#include <map>

using namespace std;


int n,w;
int x,c[610],cnt;
int main() {
	cin >> n >> w;
	for (int i = 1;i <= n;i++) {
		scanf("%d",&x);
		c[x]++;
		cnt = 0;
		int k = max(1,(int)w * i / 100);
		for (int j = 600;j >= 0;j--) {
			if (cnt + c[j] < k) {
				cnt += c[j];
			} else {
				printf("%d ",j);
				break;
			}
		}
		
	}
	return 0;
}

标签:cnt,成绩,int,获奖,选手,读入,J2020,CSP,P7072
From: https://www.cnblogs.com/yhx0322/p/17739713.html

相关文章

  • P7074 [CSP-J2020] 方格取数
    Problem相关算法:\(DP\)。题意简述给你一个方格图,每次只能向上、向右、向下走。现在求:经过所有点取到的数字和的最大值。思路动态规划。对于每一列而言,如果某个点向上走了,就不可能再向下走。向下走了同理。所以我们可以把两种情况都尝试一遍,每个点而言,如果是处于向下的状态......
  • CSP模拟30
    CSP模拟30难得改完一次题,写篇题解祭一下A.枫(P7485「Stoi2031」枫)考场居然打了个高分暴力我的思路:假设我们已知最后一个数,逆推,不断往该数前(或后)加了多少数,直至完成这个操作。荣获$96pts$的好成绩评测记录代码如下:#include<bits/stdc++.h>usingnamespacestd;constin......
  • CSP2023 游记
    前言:之所以不在标题中加上&这个字符以及后面那几个字,是准备在复赛后加。今年没报J。下文的qbn,yh,lyl,yts。正文:初赛:每次敲code都用g++编译,甚至暑假在jcsy的时候由于配置VC较麻烦,直接手敲命令的,结果选择题第11题还对不了。。。阅读程序最后一题连错两道......
  • CSP-S 2021 廊桥分配 题解
    part1:题目描述:当一架飞机抵达机场时,可以停靠在航站楼旁的廊桥,也可以停靠在位于机场边缘的远机位。乘客一般更期待停靠在廊桥,因为这样省去了坐摆渡车前往航站楼的周折。然而,因为廊桥的数量有限,所以这样的愿望不总是能实现。机场分为国内区和国际区,国内航班飞机只能停靠在国内......
  • 2023 CSP-S 备战
    2023CSP-S备战日常犯智9.29Dinic中,如果rest为\(0\),直接终止循环。intdinic(intu,intflow){ if(u==T)returnflow; intrest=flow; for(inti=now[u];i&&rest;i=edge[i].nxt){//rest now[u]=i; intv=edge[i].v,c=edge[i].c; ......
  • 洛谷 P7075[CSP-S2020] 儒略日
    [CSP-S2020]儒略日题目描述为了简便计算,天文学家们使用儒略日(Julianday)来表达时间。所谓儒略日,其定义为从公元前4713年1月1日正午12点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这一天文学历法,则每一个时刻都将被均匀的映射到数轴上,从而得以很方便的......
  • 济南 CSP-S NOIP 储备营笔记
    Day1上午——基础算法模拟+枚举小前言碰到题目不会做->先写个模拟压压惊()枚举法枚举的思想是不断地猜测,从所有可能的集合中一一尝试,然后再判断是否符合题目的条件。单独提到枚举时我们往往认为这是一个暴力做法,但事实上并非如此,恰当的枚举往往会是解题的关键步骤。......
  • 洛谷 P7075 [CSP-S2020] 儒略日
    P7075[CSP-S2020]儒略日1.题目描述为了简便计算,天文学家们使用儒略日(Julianday)来表达时间。所谓儒略日,其定义为从公元前4713年1月1日正午12点到此后某一时刻间所经过的天数,不满一天者用小数表达。若利用这一天文学历法,则每一个时刻都将被均匀的映射到数轴上,从而得以......
  • CSP-J/S 2023 游记
    \(9.16\)初赛。\(9:00\)就到了振万教学楼,休息了一下,准备去\(5\)楼考场。\(9:05\)到了考场门口,发现教室里面已经开了空调,但xxs们都不进去,6。于是我第一个进了考场。\(9:30\)总算看到试题卷了,好像除了第\(4,10\)题都很简单。\(10:20\)做完了卷子,开始检查。\(11:30\)......
  • 【垫底模拟】CSP-46
    考场解题T1染色(color):结论+构造结论:\(1,2,3,4\)循环节染色一定合法。证明:对于\(j-i=\)奇数质数:因为:\[\text{偶数+奇数=奇数}\\\text{奇数+奇数=偶数}\]奇偶不同色,所以可以满足所有的奇数质数。对于\(j-i=\)偶数质数\(2\):\[\text{奇数+2=偶数}\\\text{偶数+......