1025 PAT Ranking (25分)
1025 PAT Ranking (25分)
1. 题目

2. 思路
设置结构体, 先对每一个local排序,再整合后排序
3. 注意点
整体排序时注意如果分数相同的情况下还要按照编号排序
4. 代码
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
struct stu{
int location_number;
char registration_number[14];
int score;
int local_rank;
int final_rank;
};
int cmp(stu a, stu b){
if(a.score == b.score){
return strcmp(a.registration_number, b.registration_number)<0;
}
return a.score>b.score;
}
void show(stu s[], int size){
printf("----\n");
for(int i=0;i<size;i++){
printf("%s %d %d %d\n",
s[i].registration_number, s[i].score,
s[i].location_number, s[i].local_rank);
}
printf("----\n");
}
void _show(stu s[], int size){
for(int i=0;i<size;i++){
printf("%s %d %d %d\n",
s[i].registration_number, s[i].final_rank,
s[i].location_number, s[i].local_rank);
}
}
void showD1(int a[], int size){
printf("----\n");
for(int i=0;i<size;i++){
printf("%d ", a[i]);
}
printf("----\n");
}
void localRank(stu s[], int size){
sort(s, s+size, cmp);
int local_rank = 1;
s[0].local_rank = local_rank;
for(int i=1;i<size;i++){
if(s[i].score != s[i-1].score){
local_rank = i+1;
}
s[i].local_rank = local_rank;
}
}
void finalRank(stu s[], int size){
sort(s, s+size, cmp);
int final_rank = 1;
s[0].final_rank = final_rank;
for(int i=1;i<size;i++){
if(s[i].score != s[i-1].score){
final_rank = i+1;
}
s[i].final_rank = final_rank;
}
}
void stucat(stu s[], stu s1[], int start, int length){
for(int i=0;i<length;i++){
s[start+i] = s1[i];
}
}
int main(){
stu s[30000];
int N;
scanf("%d", &N);
int num = 0;
for(int i=0;i<N;i++){
int K;
scanf("%d", &K);
stu s1[K];
for(int j=0;j<K;j++){
scanf("%s %d", s1[j].registration_number, &s1[j].score);
s1[j].location_number = i+1;
}
localRank(s1, K);
stucat(s, s1, num, K);
num += K;
}
finalRank(s, num);
printf("%d\n", num);
_show(s, num);
return 0;
}
1025 PAT Ranking (25分)的更多相关文章
- PAT甲级:1025 PAT Ranking (25分)
PAT甲级:1025 PAT Ranking (25分) 题干 Programming Ability Test (PAT) is organized by the College of Comput ...
- 1025 PAT Ranking (25 分)
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...
- 1025 PAT Ranking (25分) 思路分析 +满分代码
题目 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of ...
- PAT 甲级1025 PAT Ranking (25 分)(结构体排序,第一次超时了,一次sort即可小技巧优化)
题意: 给定一次PAT测试的成绩,要求输出考生的编号,总排名,考场编号以及考场排名. 分析: 题意很简单嘛,一开始上来就,一组组输入,一组组排序并记录组内排名,然后再来个总排序并算总排名,结果发现最后 ...
- 【PAT甲级】1025 PAT Ranking (25 分)(结构体排序,MAP<string,int>映射)
题意: 输入一个正整数N(N<=100),表示接下来有N组数据.每组数据先输入一个正整数M(M<=300),表示有300名考生,接下来M行每行输入一个考生的ID和分数,ID由13位整数组成 ...
- 【PAT】1025. PAT Ranking (25)
题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1025 题目描述: Programming Ability Test (PAT) is orga ...
- 1025. PAT Ranking (25)
题目如下: Programming Ability Test (PAT) is organized by the College of Computer Science and Technology ...
- 1025 PAT Ranking (25)(25 point(s))
problem Programming Ability Test (PAT) is organized by the College of Computer Science and Technolog ...
- PAT (Advanced Level) 1025. PAT Ranking (25)
简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...
随机推荐
- jQuery笔记(四)jQuery中的动画
jQuery最吸引人的地方莫过于能做出绚丽的动画了,也是能极大提高用户体验的地方,这次我们就来一探jQuery中的动画! 一. show()方法和hide()方法 show()方法与hide()方法是 ...
- vue 问题总结
1. 动态设置图片, <img :src="url"> data() { return { url: require(相对路径) // 直接写相对路径会出错 } } 2 ...
- 用cookie存值
////用Request获取到客户端Cookie 判断是否为空 //if (Request.Cookies["CheckTime"] == null) //{ // //创建Coo ...
- HW - VCN 介绍
VCN 是个管理摄像机的平台 用来增删改查摄像机,获取摄像机视频流,获取录像 vcn会基于我们的接口做一次开发,作为相机的统一管理入口,获取相机的信息
- 广搜 BFS()
极其简陋的BFS模板 void BFS(???){ queue<node>q; node start, next; start = ???; q.push(start); while(!q ...
- 点击按钮出现60秒倒计时,JS(按钮)
<script type="text/javascript"> var countdown=60; function settime(val) { var e = $( ...
- IDAE打包WEB项目 WAR Eclipse转IDEA项目
接下来这里只说WEB项目打包,相信大多数都是用的WEB项目吧,关于打包WAR,真的很头痛,网上说的试了好好次都不行. 后来懂了之后,真的很简单好么,分享给大家 不要多走弯路了. 注意: 如果你 ...
- 2_abstractions
2. Up and down the level of abstraction In this chapter, we'll travel up and down the level of abstr ...
- 视频中“5s后可跳过广告” 设计目的
来源:https://wen.woshipm.com/question/detail/0quoes.html 1.保证你在看.用户关掉广告这5秒内,他的眼睛会盯着屏幕,因为他知道5秒之后就能跳过广告. ...
- tk(三)按钮的事件绑定
(三)按钮的事件绑定 ==1.普通的Button绑定事件== (1)说明: Button 使用 command=功能函数 来绑定 Button(win, text="确定", co ...