信息学奥赛复赛复习06-CSP-J2020-02直播获奖-向上取整、向下取整、整数除法、最大值、最小值、计数排序

PDF文档回复:20240928

1 2020 CSP-J 题目1 优秀的拆分

[题目描述]

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

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

[输入格式]

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

第二行有 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

输入 #2

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

输出 #2

100 100 600 600 600 600 100 100 100 100

说明/提示

样例 1 说明

各测试点的 n 如下表:

测试点编号n=
1∼310
4∼6500
7∼102000
11∼1710^4
18∼2010^5

对于所有测试点,每个选手的成绩均为不超过 600 的非负整数,获奖百分比 w 是一个正整数且 1≤w≤99

2 相关知识点

1) 向下取整

数学符号

⌊x⌋ 向下取整符号 表示小于等于 x 的最大的整数

例如

⌊13/3⌋=4

⌈x⌉ 向上取整符号 表示大于等于 x 的最小的整数

例如

⌈13/3⌉=5

整数除法

整数除法默认向下取整

例如 5/2=2

#include<bits/stdc++.h>
using namespace std;
/*2个整数相除结果也是整数,如果不能整除会向下取整 
*/ 
int main(){int a=15,b=2;int c=15/2;cout<<"15/2为:"<<c<<endl; return 0;
}
/*
输出:
15/2为:7
*/ 

2) max 最大值

在 C++ 标准库中,max 函数用于比较两个值并返回较大的那个值。它的定义位于头文件 中,有多个重载版本,可用于不同数据类型的比较

#include <algorithm>
#include <iostream>
using namespace std; int main() {// 示例1:比较两个整数int num1 = 1, num2 = 19;int maxInt = std::max(num1, num2);cout << "Max of " << num1 << " and " << num2 << ": " << maxInt << endl;// 示例2:比较两个浮点数double num3 = 9.6, num4 = 9.7;double maxDouble = std::max(num3, num4);cout << "Max of " << num3 << " and " << num4 << ": " << maxDouble << endl;// 示例3:比较字符 a的ASCII码为99 A的ASCII码为67 所以a大 char char1 = 'c', char2 = 'C';char maxChar = std::max(char1, char2);cout << "Max of " << char1 << " and " << char2 << ": " << maxChar << endl;return 0;
}
/**
Max of 1 and 19: 19
Max of 9.6 and 9.7: 9.7
Max of c and C: c
*/ 

3) 计数排序

计数排序(Counting Sort)是一种线性时间复杂度的排序算法,适用于整数排序且待排序的元素范围相对较小的情况。它的基本思想是通过统计每个元素出现的次数,然后根据统计信息将元素放回原数组的正确位置,从而实现排序

例题

如下几个数字进行计数排序
5 6 8 3 2 4
声明数组a[10]={0},分别把上面数字作为a数字下标,值为当前数+1
赋值后数组如下
下标 0 1 2 3 4 5 6 7 8 9
数值 0 0 1 1 1 1 1 0 1 0
逐一输出不为0的数的下标,如果值大于1,输出多次

计数排序,是对哈希直接定址法的变形应用,具体思路为:统计相同元素出现次数,根据统计的结果将序列回收到原来的序列中

#include<bits/stdc++.h>
using namespace std;int main(){int a[10]={3,4,2,7,5,4,3,3,3,5};int cnt[7]={0};//cnt数组记录对应下标出现次数 for(int i=0;i<10;i++){cnt[a[i]]++;}for(int i=0;i<=7;i++){//枚举对应范围的数 从最小到最大,本示例从0~7即可 while(cnt[i]>0){//一个数字出现多次时,cnt[i]为对应的数为出现几次cout<<i<<" ";cnt[i]--;}}return 0;
}/*
输出
2 3 3 3 3 4 4 5 5 7 
*/ 

3 思路分析

每录入一个学生成绩,使用计数排序存储到数组中,对到目前为止成绩进行排序

从高到低计算获奖人数,直到满额位置

#include<bits/stdc++.h>
using namespace std;
/*
s[605] 每个选手成绩有几个人
s[200]=2 表示成绩为200的有2人 
n选手总数 w获奖率 
pcnt 获奖人数 
score 选手成绩
tot 统计获奖学生数
pos 成绩从高到低记录当前获奖学生成绩位置 
*/ 
int s[605],n,w,pcnt,score,tot,pos;
int main(){cin>>n>>w;//输入选手人数 和获奖率 for(int i=1;i<=n;i++){//前i个选手 pcnt=max(1,i*w/100);//i个选手的获奖人数 cin>>score;//第i个选手的分数 s[score]++;//把第i个选手分数作为计数排序下标 值表示有几个人 tot=0,pos=601; while(tot<pcnt){//循环选够sz个人,找到最低分数可能多个超过计算获奖人数sz pos--;//s数组位置减1,s[i]成绩的位置,找前1个 tot+=s[pos];//累加s[i]成绩获奖人数 }cout<<pos<<" ";//刚好找满获将人数的位置,或者此成绩比较多,加上此位置成绩人数刚好超过获奖人数 }return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1549242.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

集合框架 - Map双列集合

01 概述 02 常用方法 03 遍历方式 【快捷键】&#xff1a;ctrlaltv 【说明】&#xff1a;Map.Entry<xx,xx>中&#xff0c;Entry是Map集合中的一个接口&#xff0c;但接口是不能创建对象的&#xff0c;它底层是通过使用Entry的实现类对象来封装键值对数据的。 【说明】&a…

LLM大模型学习:致AI新手掌握这些经验,助你少走三年弯路!

这篇文章&#xff0c;我将结合自己在大模型领域的经验&#xff0c;给大家详细聊聊新人应该如何转行大模型赛道&#xff1f; 比如大模型都有哪些方向&#xff1f;各方向的能力要求和岗位匹配&#xff1f;新手转行大模型常踩的坑和常见的误区&#xff1f;以及入行大模型最顺滑的…

代码为笔,合作作墨,共绘共赢画卷———未来之窗行业应用跨平台架构

合作共赢&#xff0c;代码同创&#xff0c;成就非凡 一、资源整合方面 1.1. 技术资源共享 - 不同的合作伙伴可能在技术领域各有所长。例如&#xff0c;一方可能擅长前端用户界面设计&#xff0c;具有丰富的交互设计经验&#xff0c;能够打造出美观、易用的预订界面&#xff…

Hadoop三大组件之MapReduce(一)

Hadoop之MapReduce 1. MapReduce是什么 MapReduce是一个分布式运算程序的编程框架&#xff0c;旨在帮助用户开发基于Hadoop的数据分析应用。它的核心功能是将用户编写的业务逻辑代码与自带的默认组件整合&#xff0c;形成一个完整的分布式运算程序&#xff0c;并并发运行在一…

Codeforces Round 975 (Div. 2)

传送门&#xff1a;https://codeforces.com/contest/2019 B. All Pairs Segments 题意&#xff1a; 首先样例解释一下&#xff1a; 一共有&#xff1a;[1,2],[1,3],[1,5],[1,6],[1,7],[2,3],[2,5],[2,6],[2,7],[3,5],[3,6],[3,7],[5,6],[5,7],[6,7] 点 1&#xff0c;7 在5个…

使用MessagePipe实现进程间通信

1、MessagePipe介绍 可以用于.NET和Unity上面的高性能的内存/分布式消息传递管道。适用于发布/订阅模式、CQRS的中介模式、Prism中的EventAggregator、IPC&#xff08;进程间通信&#xff09;-RPC等。 支持&#xff1a; 依赖注入过滤器管道更好的事件同步/异步带键值的/无键…

c++11~c++20 内联命名空间

在工作&#xff0c;我们经常会引入第三方库&#xff0c;偶尔会碰到同名的函数和类型&#xff0c;造成编译冲突的问题。一般我们可以使用命名空间&#xff0c;例如 #include <iostream> #include <iostream> using namespace std;namespace S1 {void foo(){cout &l…

基于python数据采集的可视化数据大屏,数据驱动的界面。

众所周知&#xff0c;可视化大屏离不开数据的采集&#xff0c;正式有了各种格式化的数据供给&#xff0c;可视化大屏才千姿百态&#xff0c;在数据采集方面&#xff0c;python优势什么明显&#xff0c;为大家分享一下。 一、python是什么 Python是一种高级、通用、解释型编程…

服装品牌小程序展示承载服务

服装大小品牌众多&#xff0c;还包括多区域的门店商家合作批发、咨询等&#xff0c;品牌或经销商想要获得更多生意&#xff0c;线上渠道往往是必备的&#xff0c;品牌宣传、获客转化及持续的信息干货输出等。 线上渠道多样化&#xff0c;尤其是微信、百度、抖音、快手等平台聚…

具身智能综述:鹏城实验室中大调研近400篇文献,深度解析具身智能

具身智能是实现通用人工智能的必经之路&#xff0c;其核心是通过智能体与数字空间和物理世界的交互来完成复杂任务。近年来&#xff0c;多模态大模型和机器人技术得到了长足发展&#xff0c;具身智能成为全球科技和产业竞争的新焦点。然而&#xff0c;目前缺少一篇能够全面解析…

Linux进程切换以及调度算法

目录 Linux进程切换以及调度算法 Linux进程切换介绍 前置知识 进程切换过程分析 调度算法 补充知识 Linux进程切换以及调度算法 Linux进程切换介绍 前面提到&#xff0c;分时操作系统下&#xff0c;CPU会在多个进程中做高速切换以实现多个进程看似同时执行的&#xff0…

防伪溯源查询系统V1.0.5

多平台&#xff08;微信小程序、H5网页&#xff09;二维码扫码输码防伪溯源查询系统&#xff0c;拥有强大的防伪码生成功能&#xff08;内置多种生成规则&#xff09;、批量导出防伪码数据、支持代理商管理端&#xff08;可批量对自己防伪码进行操作处理&#xff09;、文章资讯…

【深度学习】(10)--ResNet残差网络

文章目录 ResNet残差网络1. 传统卷积神经网络的问题1.1 梯度消失和梯度爆炸1.2 退化问题 2. 解决问题2.1 梯度消失与爆炸2.2 退化问题 3. 残差结构结构归纳 4. BN&#xff08;Batch Normalization&#xff09; 总结 ResNet残差网络 ResNet 网络是在 2015年 由微软实验室中的何…

ComfyUI | 好用的人体 衣服分割工具-③-Layer Style | 超多实用功能 | 强烈推荐

这里为大家分享检测人体的脸部、五官、头发、手臂、腿、脚&#xff0c;上衣、裤子、背景的插件&#xff0c;能够生成出对应的蒙版mask&#xff0c;接入到ComfyUI中&#xff0c;用于后续处理&#xff0c;如局部重绘&#xff0c;换背景等。 &#xff08;需要相关插件的同学可自…

华为LTC流程架构分享

文末附LTC流程管理PPT下载链接~ 前面笔者分享了华为LTC流程相关PPT&#xff0c;应读者需求&#xff0c;今天从架构角度进行再次与读者共同学习下LTC流程架构。 华为LTC流程架构是一个全面且集成的业务流程体系&#xff0c;从线索发现开始&#xff0c;直至收回现金&#xff0c…

Transformer: Attention is all you need

Transformer于2017年提出&#xff0c;最开始应用于NLP领域&#xff0c;随着Transformer的快速发展&#xff0c;在视觉领域中也越来越多的论文或应用用到了Transformer&#xff0c;这里记录一下自己学习的一些知识点。 PDF&#xff1a; 《Attention Is All You Need》 Code: att…

08-Registry搭建docker私仓

08-Registry搭建docker私仓 Docker Registry Docker Registry是官方提供的工具&#xff0c;用于构建私有镜像仓库。 环境搭建 Docker Registry也是Docker Hub提供的一个镜像&#xff0c;可以直接拉取运行。 步骤&#xff1a; 拉取镜像 docker pull registry启动Docker R…

YOLOv5改进:Unified-loU,用于高品质目标检测的统一loU ,2024年8月最新IoU

💡💡💡现有IoU问题点:IoU (Intersection over Union)作为模型训练的关键,极大地显示了当前预测框与Ground Truth框之间的差异。后续研究者不断在IoU中加入更多的考虑因素,如中心距离、纵横比等。然而,仅仅提炼几何差异是有上限的;而且新的对价指数与借据本身存在潜在…

Codesys trace工具右键菜单框呼出异常的问题解决

这个问题困扰了好久&#xff0c;添加trace工具之后&#xff0c;一但在模型图位置右键后&#xff0c;整个codesys界面都无法呼出右键菜单&#xff0c;甚至会出现键盘输入失效的问题。 解决办法&#xff1a;更新trace工具 1、工具 —> CODESYS Installer 或者搜索CODESYS In…

【YOLO目标检测反光衣数据集】共2388张、已标注txt格式、有训练好的yolov5的模型

目录 说明图片示例 说明 数据集格式&#xff1a;YOLO格式 图片数量&#xff1a;2388 标注数量(txt文件个数)&#xff1a;2388 标注类别数&#xff1a;2 标注类别名称&#xff1a;reflective_clothes、other_clothes 数据集下载&#xff1a;反光衣数据集 图片示例 数据…