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分)的更多相关文章

  1. PAT甲级:1025 PAT Ranking (25分)

    PAT甲级:1025 PAT Ranking (25分) 题干 Programming Ability Test (PAT) is organized by the College of Comput ...

  2. 1025 PAT Ranking (25 分)

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...

  3. 1025 PAT Ranking (25分) 思路分析 +满分代码

    题目 Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of ...

  4. PAT 甲级1025 PAT Ranking (25 分)(结构体排序,第一次超时了,一次sort即可小技巧优化)

    题意: 给定一次PAT测试的成绩,要求输出考生的编号,总排名,考场编号以及考场排名. 分析: 题意很简单嘛,一开始上来就,一组组输入,一组组排序并记录组内排名,然后再来个总排序并算总排名,结果发现最后 ...

  5. 【PAT甲级】1025 PAT Ranking (25 分)(结构体排序,MAP<string,int>映射)

    题意: 输入一个正整数N(N<=100),表示接下来有N组数据.每组数据先输入一个正整数M(M<=300),表示有300名考生,接下来M行每行输入一个考生的ID和分数,ID由13位整数组成 ...

  6. 【PAT】1025. PAT Ranking (25)

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1025 题目描述: Programming Ability Test (PAT) is orga ...

  7. 1025. PAT Ranking (25)

    题目如下: Programming Ability Test (PAT) is organized by the College of Computer Science and Technology ...

  8. 1025 PAT Ranking (25)(25 point(s))

    problem Programming Ability Test (PAT) is organized by the College of Computer Science and Technolog ...

  9. PAT (Advanced Level) 1025. PAT Ranking (25)

    简单题. #include<iostream> #include<cstring> #include<cmath> #include<algorithm> ...

随机推荐

  1. dubbo的使用

    dubbo现在用的也不多,基本都在用spring cloud那一套,所以不详细写这个dubbo了. 1.zookeeper的安装 2.demo示例 我们需要把提供者注册到dubbo注册中心,消费者去订 ...

  2. openlayers编辑区域

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  3. beego控制器介绍

    控制器介绍 提示:在 v1.6 中,此文档所涉及的 API 有重大变更,this.ServeJson() 更改为 this.ServeJSON(),this.TplNames 更改为 this.Tpl ...

  4. java回文代码

    import java.util.*; import java.math.BigInteger; import java.util.Scanner; public class Test{ static ...

  5. 题解【AcWing1090】绿色通道

    题面 题目要求出最长的空题段最短的长度,显然可以二分答案. 考虑如何 check. 设二分到的值是 \(x\),即最长的空题段长度至少为 \(x\). 其实整个 check 的过程可以看作一个 DP, ...

  6. Chrome 浏览器相关

    ********* 问题 ********* localhost 通常会使用加密技术来保护您的信息.Google Chrome 此次尝试连接到 localhost 时,此网站发回了异常的错误凭据.这可 ...

  7. 【终端使用】常用Linux命令的基本使用

    常用Linux命令的基本使用: 命令 对应英文 作用 ls list 查看当前文件夹下的内容 pwd print work directory 查看当前所在的文件夹 cd [目录名] change d ...

  8. C语言118. 杨辉三角

    给定一个非负整数 numRows,生成杨辉三角的前 numRows 行. 在杨辉三角中,每个数是它左上方和右上方的数的和. 示例: 输入: 5输出:[ [1], [1,1], [1,2,1], [1, ...

  9. 134.cookie、session的工作机制

    cookie和session (1)cookie:在网站中,http请求时无状态的,也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求的是哪个用户(在中国我们因为IP ...

  10. 百度的Ueditor在VS2015/VS2010中配置需注意的地方

    1.下载:https://ueditor.baidu.com/website/download.html#uedito 官网已无1.4.3的.net版本下载,不知道百度在搞什么,下载完整版和ASP版本 ...