这道题是照着晴神的来敲,但是自己技术太渣,中间还是出现了不少问题。

1.学习到排序的做法,利用algorithm库的sort(begin,end,cmp),自己按照题目要求来完成cmp的编写

可能经常会用到cstring库的strcmp(a,b),是个好东西,a>b返回正数,==返回0,小于返回负数

2.如果排序题中的个体是有很多用于排序的私人信息的话,可以使用struct来囊括

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
struct student{
char rn[]; //准考号
int score; //分数
int ln; //场次号
int lr; //本场排名
}; student stu[]; bool cmp(const student &a,const student &b){
if(a.score!=b.score) return a.score>b.score;
else return strcmp(a.rn,b.rn)<; //准考号小的排在前面
} int main(){
freopen("in.txt","r",stdin); int n,num=; //n为考场的数量,num为总人数
scanf("%d",&n); for(int i=;i!=n+;++i){
int k; //本场人数
scanf("%d",&k);
for(int j=;j!=k;++j){
scanf("%s %d",stu[num].rn,&stu[num].score);
stu[num].ln=i;
num++;
} sort(stu+num-k,stu+num,cmp); //当前场次排序
stu[num-k].lr= ;
for(int j=;j!=k;j++){
if(stu[num-k+j].score==stu[num-k+j-].score)
stu[num-k+j].lr=stu[num-k+j-].lr;
else stu[num-k+j].lr=j+;
}
}
printf("%d",num);
sort(stu,stu+num,cmp);
int r=;
for(int i=;i!=num;i++){
printf("\n");
if(i!= && stu[i].score!=stu[i-].score)
r=i+;
printf("%s %d %d %d",stu[i].rn,r,stu[i].ln,stu[i].lr);
} return ;
}

PAT1025的更多相关文章

  1. 课堂作业二 PAT1025 反转链表

    MyGitHub 终于~奔溃了无数次后,看到这个结果 ,感动得不要不要的::>_<:: 题目在这里 题目简述:该题可大致分为 输入链表 -> 链表节点反转 -> 两个步骤 输入 ...

  2. PAT1025. PAT Ranking

    /因为这道题之前做过一次,看了别人的算法思想用local跟galobal排序并插入,所以一写就是照着这个思想来的,记得第一次做的时候用sort分段排序,麻烦要记录起始位置,好像最后还没A,这次用别人的 ...

  3. pat1025. PAT Ranking (25)

    1025. PAT Ranking (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Programmi ...

  4. PAT 1025 反转链表

    PAT (Basic Level) Practise 1025 Github链接:https://github.com/H-BING/object-oriented/tree/master/PAT10 ...

  5. [Assignment] C++2

    作业要求:PAT1025 翻转链表 代码在这里

随机推荐

  1. 阿里nacos k8s部署

    阿里nacos k8s部署 [root@master1 nacos]# cat nacos-quick-start.yaml --- apiVersion: v1 kind: Service meta ...

  2. git和GitHub初级

    使用方式: 一种是本地创建一个文档, 然后在github上创建一个仓库, 在上传上去 一种是从仓库下载代码, 然后在本地编辑, 然后在上传上去 第一种: 首先在linux上创建一个文档, mkdir ...

  3. STL源码剖析——空间配置器Allocator#3 自由链表与内存池

    上节在学习第二级配置器时了解了第二级配置器通过内存池与自由链表来处理小区块内存的申请.但只是对其概念进行点到为止的认识,并未深入探究.这节就来学习一下自由链表的填充和内存池的内存分配机制. refil ...

  4. hdu 6609 区间条件前缀和 + 二分

    题目传送门//res tp hdu 目的 在尾部逐步插入n个元素,求插入第i个元素时,[1,i)内删去多少个元素,可使前缀和[1,i]不大于m 多测Q [1,15] n [1,2e5] m [1,1e ...

  5. 剑指offer27:按字典序打印出该字符串中字符的所有排列

    1 题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描述: ...

  6. 使用pyinstaller编译python文件

    1.安装pyinstaller pip install pyinstaller 2.编译 pyinstaller yourprogram.py 具体操作   1.编译 d: cd python pyi ...

  7. prometheus环境搭建

    1. 下载文件 wget https://dl.grafana.com/oss/release/grafana-6.2.4.linux-amd64.tar.gz tar -zxvf grafana-. ...

  8. 撸一个 vue 的截图组件,按比例截取

    <template> <div class="clip-img" :style="imgStyle"> <img :src=&qu ...

  9. Codeforces Round #563 Div. 2

    A:显然排序即可. #include<bits/stdc++.h> using namespace std; #define ll long long #define inf 100000 ...

  10. Python之(matplotlib、numpy、pandas)数据分析

    一.Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形. 它主要用来回事图形,用来展现一些数据,更加直观的展示,让你第一眼就只要数 ...