PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名
文章目录
- 题目分析
- 题目来源
题目分析
来源:acwing
分析:和下面这题是一道题:
PAT甲级1137 Final Grading:[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数
排名得记录一下,做过几道类似的题目:学校首先按加权总分排行。如有并列,则应对应相同的排名,并按考生人数升序输出。这种处理方式是设一个变量rank,如果分数不一样的话,排名rank就等于前面的人数+1;如果分数一样的话,rank不变。
样例:
5
1 cmu 192 2
1 au 192 3
3 pku 100 1
4 hypu 81 2
4 lanx 81 2
代码:int rank =1;for(int i = 0; i<schools.size(); i++){auto a = schools[i];if(i== 0 || a.score != schools[i-1].score) rank = i+1;printf("%d %s %d %d\n",rank,a.id.c_str(),a.score,a.cnt);}
ac代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;int n;
struct School{string id;int b,a,t;int cnt;int score;
//默认构造函数School(): b(0),a(0),t(0),cnt(0),score(0) {}//求总分数,取整(int)不是四舍五入void calc(){score = (int)(b/1.5 + a + t*1.5);}//排序:重载小于号bool operator<(const School& s)const{if(score != s.score) return score > s.score;else if(cnt != s.cnt) return cnt < s.cnt;return id < s.id;}};//变成小写
string change(string a){string res;for(auto s :a)s=tolower(s),res +=s;return res;
}int main(){cin >>n ;//hash表unordered_map<string,School> hash1;for(int i = 0; i<n ; i++){string id,sch;int score;cin >> id >> score >> sch;sch=change(sch);if(id[0]=='B') hash1[sch].b += score;if(id[0]=='A') hash1[sch].a += score;if(id[0]=='T') hash1[sch].t += score;hash1[sch].cnt ++;hash1[sch].id = sch;}vector<School> schools;for(auto sch:hash1) {auto s = sch.second;s.calc(); //求总分schools.push_back(s);//放进vector}sort(schools.begin(),schools.end());cout<< schools.size()<<endl;//排名int rank =1;for(int i = 0; i<schools.size(); i++){auto a = schools[i];if(i== 0 || a.score != schools[i-1].score) rank = i+1;printf("%d %s %d %d\n",rank,a.id.c_str(),a.score,a.cnt);}}
题目来源
PAT甲级1141 PAT Ranking of Institutions
https://www.acwing.com/problem/content/1636/
PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名相关推荐
- PAT甲级1025 PAT Ranking:[C++题解]排序、结构体、排名
文章目录 题目分析 题目链接 题目分析 一个区域排名和一个总排名.启发我们每个同学的数据存两份,一个存在区域数组中,另一个存在整体数组中. 有序列表中排名怎么求呢? 比如序列 得分:99 98 98 ...
- PAT甲级1075 PAT Judge:[C++题解]排序、结构体
文章目录 题目分析 题目链接 题目分析 分析:主要问题在于判断是否出现过,如果出现过就不需要再初始化一个结构体,如果未出现过再初始化一个结构体. 当然还需要开一个hash表,用来映射学生id和结构体信 ...
- 17冬第二题 PAT甲级 1141 Ranking of Institutions (25分) 有点鸡贼
题目 After each PAT, the PAT Center will announce the ranking of institutions based on their students' ...
- PAT(A) - 1141. PAT Ranking of Institutions (25)
1141. PAT Ranking of Institutions (25) 时间限制 500 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子
文章目录 题目分析 题目来源 题目分析 来源:acwing 板子题:合并果子合并果子优先队列 分析:贪心策略是: 每次取最短的两条绳子a和b.该两条绳子合并为1条绳子,且长度变为a+b2\frac{a ...
- PAT甲级1113 Integer Set Partition:[C++题解]贪心
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 集合元素个数之差为0或1.两个集合元素之和,分别取最大的n1个数,和剩下的所有的数. ac代码 #include<bits/s ...
- PAT甲级1147 Heaps (30 分):[C++题解]堆、树的遍历、dfs、完全二叉树建树
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:给定完全二叉树,判断是否是堆,需要区分大根堆,小根堆.后面是输出后序遍历. AC代码 #include<bits/stdc++. ...
- PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 分4个vector,单独排序即可. ac代码 #include<bits/stdc++.h> using namespa ...
- PAT甲级1054 The Dominant Color:[C++题解]哈希表、水题
文章目录 题目分析 题目链接 题目分析 来源:acwing AC代码 #include<bits/stdc++.h> using namespace std; const int N = ...
最新文章
- 旷视冲刺科创板IPO获通过!距离上市仅一步之遥,拟募资60.18亿
- CSS-home.htm
- 网易云信又双叒受到Gartner关注,看看这次的报告说了什么?
- [ js处理表单 ]:动态赋值
- jquery插件之jquery-ui
- MySQL作为Kubernetes服务,可从WildFly Pod访问
- dnf最新地图编号2020_2020手游崛起端游没落?网易新端游好玩刺激能搬砖,网友:妙...
- centos 阿帕奇无法解析php_PHP之校园连接企业之路-2
- php 正则匹配 文件,php – 正则表达式匹配.htaccess中的一系列文件类型
- Hadoop入门(七)——Hadoop安装(图文详解步骤2021)
- 【读书笔记《Bootstrap 实战》】4.企业网站
- 知了课堂Day3——微信小程序基础03——组件的一些笔记
- 小学计算机教师面试试题及答案,2019下半年小学信息技术教师资格证面试真题及答案汇总...
- antdesignVue递归导航菜单
- linux中tail命令的作用,Linux中tail命令实例
- Java编写一个桌球_java练习题——简易的桌球游戏
- win10简繁体输入转换输入法设置转换
- android执行lua脚本的方法,在Android手机上编写并运行Lua脚本
- 德国威步 codemeter java 加密
- 全面高效的SEO视频教程,优化自己搞定
热门文章
- (2) 假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等...
- 06复杂查询(多数据库表)
- 浅谈工作流引擎的几个关键因素
- 【PC工具】更新免费文库文档下载器,破解文库下载器,免费下载文库文档
- 数学篇(一) 矩阵运算
- keil debug时用断点管理抓取变量变化
- Class.getResourceAsStream和ClassLoader.getResourceAsStream方法
- Visual Studio 15.4发布,新增多平台支持
- AGG第二课 代码框架以及命名规则
- 基于用户画像的实时异步化视频推荐系统