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. JavaScript DOM–事件操作

    事件 注册事件 给元素添加事件,为注册事件或者绑定事件 注册事件两种方式 传统方式 监听事件方式 事件监听 addEventListener() 事件监听 (IE9以上) eventTarget.ad ...

  2. 剑指offer-面试题31-栈的压入弹出序列-栈

    #include<iostream> #include<string.h> #include<algorithm> #include<cmath> #i ...

  3. .net mvc接收参数为null的解决方案

    1.通过对象接收请求数据时的null 必须为对象的属性设置get与set private System.String _EMail = System.String.Empty; public Syst ...

  4. Unsupervise-learning-notes

    K-means 数据是没有label的,按照数据之间的相似性进行分类 原理and步骤 是随机选取K个对象作为初始的聚类中心, 计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类 ...

  5. PAT (Basic Level) Practice (中文)1030 完美数列 (25 分) (有点意思)

    给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. 输入格 ...

  6. Python-Django学习笔记(四)-views的编写以及urls分发器的配置

    MTV中的V表示的是Views,视图函数(或简称视图)只是一个Python函数,它接受Web请求并返回Web响应. 通俗的理解可以理解为后端控制器. (响应可以是网页的HTML内容,重定向,404错误 ...

  7. 2级搭建类201-Oracle 12cR2 单实例 ASM(OEL7.7)公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列除特定项目目前不对外发布,仅作为博客记录,其他公开.如学员在 ...

  8. Python学习笔记三:数据特征分析

    完成数据清理后,下面通过图表展开对数据的分析. 1.前期初判(分布分析): 1)判断分组区间: # a.散点图:plt.scatter(data[字段1],data['字段2'], s = data[ ...

  9. PHP目录操作(附封装好的目录操作函数文件)

    目录函数库常用API $path='test'; var_dump(is_dir($path));//检测是否为目录 echo '<hr/>'; echo getcwd();//得到当前的 ...

  10. Codeforces 764C Timofey and a tree

    Each New Year Timofey and his friends cut down a tree of n vertices and bring it home. After that th ...