PAT甲级1141 Ranking of Institutions
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805344222429184
题意:
给定几个学生的PAT分数和学校,给这些学校学生的PAT总分排序。
思路:
库函数tolower()和toupper()可以分别把字符串转换为都是小写字母和都是大写字母。
这道题要注意的是,因为是加权的总分,算的时候应该用double。但是题目中有说,总分取加权之后的整数部分,全部加完后要转成int进行比较。
1 //#include<bits/stdc++> 2 #include<stdio.h> 3 #include<iostream> 4 #include<algorithm> 5 #include<cstring> 6 #include<stdlib.h> 7 #include<queue> 8 #include<map> 9 #include<stack> 10 #include<set> 11 12 #define LL long long 13 #define ull unsigned long long 14 #define inf 0x7f7f7f7f 15 16 using namespace std; 17 18 const int maxn = 1e5 + 5; 19 int n; 20 struct school{ 21 string name; 22 int num; 23 double sco; 24 int rnk; 25 }sch[maxn]; 26 set<string>school_name; 27 set<string>::iterator iter; 28 map<string, int>schoolid; 29 30 bool cmp(school &a, school &b) 31 { 32 if((int)a.sco == (int)b.sco) 33 if(a.num == b.num)return a.name < b.name; 34 else return a.num < b.num; 35 else return (int)a.sco > (int)b.sco; 36 } 37 38 struct student{ 39 string name; 40 double sco; 41 string sch; 42 }stu[maxn]; 43 44 int main() 45 { 46 scanf("%d", &n); 47 for(int i = 0; i < n; i++){ 48 cin>>stu[i].name>>stu[i].sco>>stu[i].sch; 49 if(stu[i].name[0] == 'T')stu[i].sco *= 1.5; 50 else if(stu[i].name[0] == 'B')stu[i].sco /= 1.5; 51 transform(stu[i].sch.begin(), stu[i].sch.end(), stu[i].sch.begin(), ::tolower); 52 school_name.insert(stu[i].sch); 53 } 54 int id = 0; 55 for(iter = school_name.begin(); iter != school_name.end(); iter++){ 56 string s = *iter; 57 sch[id].name = s; 58 schoolid[s] = id++; 59 } 60 61 for(int i = 0; i < n; i++){ 62 int sid = schoolid[stu[i].sch]; 63 sch[sid].num++; 64 sch[sid].sco += stu[i].sco; 65 } 66 67 sort(sch, sch + id, cmp); 68 int rnk = 0, tie = 0; 69 printf("%d\n", id); 70 for(int i = 0; i < id; i++){ 71 sch[i].sco = (int)sch[i].sco; 72 if(i != 0 && sch[i].sco == sch[i - 1].sco){ 73 tie++; 74 } 75 else{ 76 rnk += tie + 1; 77 tie = 0; 78 } 79 cout<<rnk<<" "<<sch[i].name<<" "<<sch[i].sco<<" "<<sch[i].num<<endl; 80 } 81 82 return 0; 83 }
转载于:https://www.cnblogs.com/wyboooo/p/10522423.html
PAT甲级1141 Ranking of Institutions相关推荐
- 17冬第二题 PAT甲级 1141 Ranking of Institutions (25分) 有点鸡贼
题目 After each PAT, the PAT Center will announce the ranking of institutions based on their students' ...
- PAT甲级1141 PAT Ranking of Institutions :[C++题解]结构体、排序、哈希表、结构体构造函数、结构体内写函数、排名
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:和下面这题是一道题: PAT甲级1137 Final Grading:[C++题解]结构体.排序.哈希表.结构体构造函数.结构体内写函 ...
- 2020年9月PAT甲级满分必备刷题技巧
2020年7月的考试结束了,除了本次的考题更新,短期内不会更新. [7月题目的特点:首次线上考试,没出链表.树相关的模板题,第2到4题背景新颖,大大降低了抄袭历年代码的可能性,可以看作是线上考试的新趋 ...
- 1141 PAT Ranking of Institutions (PAT甲级)
29行中把string全部转成lowercase, 我记得之前写成 transform(school.begin(), school.end(), ::tolower); 是可行的,不知道为什么这次编 ...
- PAT(A) - 1141. PAT Ranking of Institutions (25)
1141. PAT Ranking of Institutions (25) 时间限制 500 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHE ...
- 1141 PAT Ranking of Institutions (25 分)
1141 PAT Ranking of Institutions (25 分) After each PAT, the PAT Center will announce the ranking of ...
- PAT甲级1025 PAT Ranking:[C++题解]排序、结构体、排名
文章目录 题目分析 题目链接 题目分析 一个区域排名和一个总排名.启发我们每个同学的数据存两份,一个存在区域数组中,另一个存在整体数组中. 有序列表中排名怎么求呢? 比如序列 得分:99 98 98 ...
- PAT A1141 PAT Ranking of Institutions ——昨夜西风凋碧树
PAT A1141 PAT Ranking of Institutions 中间计算TWS时不能使用int,否则最后一个测试点不过.但是比较和输出又需要用int,在里面强转int也不给AC,无奈只好先 ...
- PAT甲级题目翻译+答案 AcWing(字符串处理)
1001 A+B Format (20 分) 题意 :将整数转换成标准格式 思路 :从后往前遍历字符串进行模拟,每三个数字加一个逗号,但不能是在最前面加逗号,也不能是加在负号后面 #include & ...
- 【PAT甲级真题整理五】1121~1155
终于考完了qaq把最后一堆也整理出来了 目录 1121 Damn Single(25)set.map的使用 1122 Hamiltonian Cycle(25)哈密顿回路 1123 Is It a C ...
最新文章
- Structured Streaming编程 Programming Guide
- 用git提交代码时,由于进程加锁,突然崩溃,未来得及解锁,导致其他进程访问不了...
- java写航显系统_一种机场航显系统的制作方法
- android的logcat详细用法
- (Python的)__ name__中包含什么?
- 怎么才能显示Eclipse中ConSole的全部输出内容
- shell 练习题02 一个文件里将内容三行显示为一行
- c语言的加法和平均值程序,编写求一组整数的和与平均值的程序
- python短视频教程_Python技巧:10万+的短视频被批量生产了,Python表示不服
- 华为笔试题2019年3月
- 小程序 微信小商店 获取商品列表
- mfc控件设置颜色(超全)
- python布尔值使用_Python布尔值--True和False
- 链表的中间结点-python
- python微信抢票脚本_春节到了 教你使用python来抢票回家
- c语言佛像怎么打,佛像的制作过程,让你大开眼界!
- SAP VK13 提示 内部错误:T IVAKE F IVAKE_INSERT I MV130F0I
- pandas学习笔记1—categories与set_categories
- 程序员需要学习英语吗?
- AI那么牛,你离失业还有多远?
热门文章
- python中文件打开的合法模式组合_python中各种文件打开模式
- mess组网 中继_Mesh路由和无线中继的差距在哪里?谁才是更好的选择?
- linux手动注入网络数据_大多数企业网络无法处理大数据负载 | Linux 中国
- HarmonyOS官网壁纸图片,华为鸿蒙系统HarmonyOS目前收集到的壁纸分享
- C/C++[codeup 1934,1932,1935]查找
- 阿里云云计算 32 PolarDB的概念
- 算法:Reverse String(反转字符串)
- 会考flash中文字变形为三角形_flash逐帧课件动画制作有哪些详细教程
- java interface 传值_前后端分离传值方案-RestfulAPI
- FP-growth发现频繁项集