天梯赛 L2-015 互评成绩
题目
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。
输入格式:
输入第一行给出3个正整数N(3 < N ≤104,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。
输出格式:
按非递减顺序输出最后得分最高的M个成绩,保留小数点后3位。分数间有1个空格,行首尾不得有多余空格。
输入样例
6 5 3
88 90 85 99 60
67 60 80 76 70
90 93 96 99 99
78 65 77 70 72
88 88 88 88 88
55 55 55 55 55
输出样例
87.667 88.000 96.000
题解
一道思路比较简单的模拟题,就是读入成绩,剖除最高最低分后计算平均成绩,存入并排序(为了减少内存开销,这里大于M时要对最小成绩进行删除)
主要数据结构:multiset(用set可能会遗漏重复数据)
注意:删除时不应用multiset.erase(val),应该multiset.erase(iterator)避免删除很多数据。
个人代码
#include <bits/stdc++.h>
using namespace std;
multiset<double, greater<double>> res;
int N, K, M;
int main() {
cin>>N>>K>>M;
for (int i = 0; i<N; i++) {
vector<double> vec;
for (int j = 0; j<K; j++) {
double tmp;
cin>>tmp;
vec.push_back(tmp);
}
sort(vec.begin(), vec.end());
vec.pop_back();
vec.erase(vec.begin());
double sum = 0;
for (auto &a: vec) {
sum+= a;
}
double ave = (double)sum/(K-2);
res.insert(ave);
if (res.size()>M) {
auto t = res.end();
t--;
res.erase(t);
}
}
vector<double> vec(res.begin(), res.end());
for (int i = vec.size()-1; i>=0 && vec.size()-i<=M; i--) {
if (i!=vec.size()-1) putchar(' ');
printf("%.3lf", vec[i]);
}
}
天梯赛 L2-015 互评成绩的更多相关文章
- 2016年团体程序设计天梯赛-决赛 L2-3. 互评成绩(25)
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩.系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩.本题就要求你编写这个互评系统的算分模块. ...
- PTA天梯赛L2
L2-001 紧急救援 题意:就是给你一张n<500的图:让你求最短路径,最短路条数,以及路径: 做法,先用dijkstra求最短路,然后dfs找最短路条数,以及点权的最大值: 一般dfs不就可 ...
- 第四届CCCC团体程序设计天梯赛 后记
一不小心又翻车了,第二次痛失200分 1.开局7分钟A了L2-3,一看榜已经有七个大兄弟排在前面了,翻车 * 1 2.把L1-3 A了18分,留了两分准备抢顽强拼搏奖,最后五秒钟把题过了,万万没想到还 ...
- 团体程序设计天梯赛(CCCC) L3009 长城 方法证明
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- PTA|团体程序设计天梯赛-练习题目题解锦集(C/C++)(持续更新中……)
PTA|团体程序设计天梯赛-练习题目题解锦集(持续更新中) 实现语言:C/C++: 欢迎各位看官交流讨论.指导题解错误:或者分享更快的方法!! 题目链接:https://pintia.cn/ ...
- 【CCCC天梯赛决赛】
cccc的天梯赛决赛,水题一样的水,中档题以上的还是没做出来.补了一下题,觉得其实也不是很难,主要是练的少. L2-1:红色预警 并查集 我做的时候想不到并查集,想到了也不一定做的出来,都是其实不难. ...
- 记第一届 CCCC-团体程序设计天梯赛决赛 参赛
其他都没什么,上午报道,下午比赛两个半小时,最后139分 但四我超遗憾的是,最后在做L3-1二叉搜索树,因为看到有辣么多人做出来,可是我没做出来啊 比赛结束后看了看其他两道当场吐血,L3-3直捣黄龙不 ...
- L1-049 天梯赛座位分配
L1-049 天梯赛座位分配 (20 分) 天梯赛每年有大量参赛队员,要保证同一所学校的所有队员都不能相邻,分配座位就成为一件比较麻烦的事情.为此我们制定如下策略:假设某赛场有 N 所学校参赛,第 i ...
- 团体程序设计天梯赛(CCCC) L3021 神坛 的一些错误做法(目前网上的方法没一个是对的) 和 一些想法
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
- 团体程序设计天梯赛(CCCC) L3019 代码排版 方法与编译原理密切相关,只有一个测试点段错误
团体程序设计天梯赛代码.体现代码技巧,比赛技巧. https://github.com/congmingyige/cccc_code
随机推荐
- 扎“芯”了——CP探针卡的国产替代道阻且长
这是IC男奋斗史的第19篇原创 关注公众号[IC男奋斗史],让我们一起撸起袖子加油干! 本文3810字,预计阅读10分钟. 之前在<凤姐如何变冰冰?>这篇文章中杰哥有介绍过CP测试,也提到 ...
- C# WinForm NumericUpDown 控件全选其中文字 (Numeric 全选文本) 全选文本Numeric
num_length.Focus(); UpDownBase updbText = (UpDownBase)num_length; ...
- 保姆级vmware安装MacOS
为啥是v10.15 MacOS10.15对硬件的要求很低,一般是不会卡的 准备工作 开始之前,请先完成以下步骤: 你的计算机中装有VMware Workstation 15及以上版本, 并确定你的磁盘 ...
- 前端开发系列059-网络篇之网络基础知识和HTTP协议
一.网络编程基本概念 1.1 客户端和服务器的基本概念 客户端(Client)能从服务器获取资源为客户提供服务的程序(设备). 服务器(Server)为客户端提供服务.提供数据.提供资源的机器. 说明 ...
- Visual Studio 现已支持新的、更简洁的解决方案文件(slnx)格式
前言 解决方案文件是 Visual Studio 中用于组织和管理多个项目的文件,其后缀通常为.sln(基于 UTF-8格式的).它充当一个容器,维护着项目之间的引用关系.构建配置以及其他设置,定义了 ...
- ViewModelProviders报错
//创建ViewModel实例 //MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class); //该方法已弃用 M ...
- 微服务架构PaaS平台,iPaaS平台支撑底座
RestCloud所有产品均基于本微服务架构PaaS平台研发而来,底层PaaS平台是RestCloud所有产品的技术底座,基于本技术底座RestCloud快速研发了所有产品线,通过不断迭代PaaS平台 ...
- SciTech-BigDataAIML-Measurement: Euclidian Distance + Manhattan Distance + Area面积 + Density密度 + KLD(KL散度):测度比较"两Distribution(概率分布)"的Similarity(接近度)
Measurement 测度 Euclidian Distance(欧几理得距离) \(\large \begin{array}{rl} \\ EuDistance(Point_1, Point_2) ...
- mac上homebrew重装手记
今天因为种种原因,把mac上的homebrew玩坏了,需要重装的时候,发现遇到一堆问题,记录于此: 1. (官网)卸载方法 /usr/bin/ruby -e "$(curl -fsSL ht ...
- vue07-router 路由
main.js vue init webpack //选择router import router from './router' new Vue({ el: '#app', router, comp ...