文章目录

  • 题目分析
  • 题目来源

题目分析



来源: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++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名相关推荐

  1. PAT甲级1025 PAT Ranking:[C++题解]排序、结构体、排名

    文章目录 题目分析 题目链接 题目分析 一个区域排名和一个总排名.启发我们每个同学的数据存两份,一个存在区域数组中,另一个存在整体数组中. 有序列表中排名怎么求呢? 比如序列 得分:99 98 98 ...

  2. PAT甲级1075 PAT Judge:[C++题解]排序、结构体

    文章目录 题目分析 题目链接 题目分析 分析:主要问题在于判断是否出现过,如果出现过就不需要再初始化一个结构体,如果未出现过再初始化一个结构体. 当然还需要开一个hash表,用来映射学生id和结构体信 ...

  3. 17冬第二题 PAT甲级 1141 Ranking of Institutions (25分) 有点鸡贼

    题目 After each PAT, the PAT Center will announce the ranking of institutions based on their students' ...

  4. PAT(A) - 1141. PAT Ranking of Institutions (25)

    1141. PAT Ranking of Institutions (25) 时间限制 500 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...

  5. PAT甲级1125 Chain the Ropes:[C++题解]贪心、优先队列、合并果子

    文章目录 题目分析 题目来源 题目分析 来源:acwing 板子题:合并果子合并果子优先队列 分析:贪心策略是: 每次取最短的两条绳子a和b.该两条绳子合并为1条绳子,且长度变为a+b2\frac{a ...

  6. PAT甲级1113 Integer Set Partition:[C++题解]贪心

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 集合元素个数之差为0或1.两个集合元素之和,分别取最大的n1个数,和剩下的所有的数. ac代码 #include<bits/s ...

  7. PAT甲级1147 Heaps (30 分):[C++题解]堆、树的遍历、dfs、完全二叉树建树

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:给定完全二叉树,判断是否是堆,需要区分大根堆,小根堆.后面是输出后序遍历. AC代码 #include<bits/stdc++. ...

  8. PAT甲级1062 Talent and Virtue:[C++题解]结构体、哈希表

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 分4个vector,单独排序即可. ac代码 #include<bits/stdc++.h> using namespa ...

  9. PAT甲级1054 The Dominant Color:[C++题解]哈希表、水题

    文章目录 题目分析 题目链接 题目分析 来源:acwing AC代码 #include<bits/stdc++.h> using namespace std; const int N = ...

最新文章

  1. 旷视冲刺科创板IPO获通过!距离上市仅一步之遥,拟募资60.18亿
  2. CSS-home.htm
  3. 网易云信又双叒受到Gartner关注,看看这次的报告说了什么?
  4. [ js处理表单 ]:动态赋值
  5. jquery插件之jquery-ui
  6. MySQL作为Kubernetes服务,可从WildFly Pod访问
  7. dnf最新地图编号2020_2020手游崛起端游没落?网易新端游好玩刺激能搬砖,网友:妙...
  8. centos 阿帕奇无法解析php_PHP之校园连接企业之路-2
  9. php 正则匹配 文件,php – 正则表达式匹配.htaccess中的一系列文件类型
  10. Hadoop入门(七)——Hadoop安装(图文详解步骤2021)
  11. 【读书笔记《Bootstrap 实战》】4.企业网站
  12. 知了课堂Day3——微信小程序基础03——组件的一些笔记
  13. 小学计算机教师面试试题及答案,2019下半年小学信息技术教师资格证面试真题及答案汇总...
  14. antdesignVue递归导航菜单
  15. linux中tail命令的作用,Linux中tail命令实例
  16. Java编写一个桌球_java练习题——简易的桌球游戏
  17. win10简繁体输入转换输入法设置转换
  18. android执行lua脚本的方法,在Android手机上编写并运行Lua脚本
  19. 德国威步 codemeter java 加密
  20. 全面高效的SEO视频教程,优化自己搞定

热门文章

  1. (2) 假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等...
  2. 06复杂查询(多数据库表)
  3. 浅谈工作流引擎的几个关键因素
  4. 【PC工具】更新免费文库文档下载器,破解文库下载器,免费下载文库文档
  5. 数学篇(一) 矩阵运算
  6. keil debug时用断点管理抓取变量变化
  7. Class.getResourceAsStream和ClassLoader.getResourceAsStream方法
  8. Visual Studio 15.4发布,新增多平台支持
  9. AGG第二课 代码框架以及命名规则
  10. 基于用户画像的实时异步化视频推荐系统