1141 PAT Ranking of Institutions
2024-10-07 21:11:18
题意:给出考生id(分为乙级、甲级和顶级),取得的分数和所属学校。计算各个学校的所有考生的带权总成绩,以及各个学校的考生人数。最后对学校进行排名。
思路:本题的研究对象是学校,而不是考生!因此,建立学校的结构体Record,记录学校的校名,考生人数,排名,成绩等信息。利用map<校名,该学校对应的结构体>构造映射,然后在读入数据的时候就可以更新该学校的分数,学生人数。数据读入完毕后,根据计算规则求出各个学校的带权总成绩,再把结构体放到vector中排序一下,确定排名,就好了。
代码:
#include <cstdio> #include <cctype> #include <string> #include <vector> #include <map> #include <iostream> #include <algorithm> #include <fstream> using namespace std; struct Record{ int rank; string sch; int ScoreB,ScoreA,ScoreT,tws; int cnt; Record():rank(),sch(),ScoreA(),ScoreT(),tws(),cnt(){} }; map<string,Record> mp; vector<Record> vec; bool cmp(Record a,Record b) { if(a.tws!=b.tws) return a.tws>b.tws; else if(a.cnt!=b.cnt) return a.cnt<b.cnt; else return a.sch<b.sch; } int main() { //ifstream cin("pat.txt"); int n; cin>>n; string sch,id; int score; ;i<n;i++){ cin>>id>>score>>sch; ;i<sch.size();i++) sch[i]=tolower(sch[i]); mp[sch].cnt++; mp[sch].sch=sch; ]=='B') mp[sch].ScoreB+=score; ]=='A') mp[sch].ScoreA+=score; else mp[sch].ScoreT+=score; } for(auto it:mp){ Record rec=it.second; rec.tws=rec.ScoreB/1.5 + rec.ScoreA + rec.ScoreT*1.5; vec.push_back(rec); } sort(vec.begin(),vec.end(),cmp); ;i<vec.size();i++){ ) vec[i].rank=; ].tws) vec[i].rank=vec[i-].rank; ; } cout<<vec.size()<<'\n'; for(auto it:vec) cout<<it.rank<<' '<<it.sch<<' '<<it.tws<<' '<<it.cnt<<'\n'; ; }
最新文章
- offse
- PHP安全编程:对输出要进行转义
- PostMessager来对子父窗体进行跨域
- #在FLAT模式下,需要设置flat子网,VM的IP从这个设置的子网中抓取,这时flat_injected需要设置为True,系统才能自动获得IP,如果flat
- Swift语言学习之OC和Swift混编
- ASP.NET的运行原理与运行机制
- Android Proguard
- Ubuntu命令行下安装,卸载软件包的过程[转]
- week 与 strong区别 精辟的解释
- JAVA学习笔记 -- 数据结构
- React配合Webpack实现代码分割与异步加载
- C语言指针声明探秘
- 使用CodeDOM动态编译一个字符串表达式
- jmeter - 关联之正则表达式提取器
- 异常处理第三讲,SEH(结构化异常处理),异常展开问题
- maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
- html初识form表单
- java 编写函数将字符串的首尾空格删除。
- BASH 环境
- c#扩展函数
热门文章
- 将hibernate.cfg.xml文件都放到spring中时报错
- SpringBoot:竟然has no explicit mapping for /error
- Pycharm for mac 快捷键
- spring mvc:拦截器不拦截静态资源的三种处理方式
- Java中使用Log的方法
- Win7性能选项
- Codeforces Round #394 (Div. 2) B. Dasha and friends
- Spring核心AOP(面向切面编程)总结
- SBT构建工具
- Golang 编译成 DLL 文件