大致题意:

  • 给定n个学生的学号和分数,
  • 求各个分数段的人数,
  • 求把学号排序后的序列,
  • 求满分的人数以及学号。

基本思路:

  • 虽然看起来很繁琐(?),但就非常非常的简单,直接按题意做就好了。
  • 然后有个坑,这是\(\color{#FF3030}{字典顺序}\),不是\(\color{#0000FF}{字典序}\)QAQ。
  • 字典顺序是个什么东东呢?嗯..就是排序不看长度,只看每个字母在字母表上的位置。
  • 然后就和字典序不一样,嗯,然后我一开始就wa了。/kk

Code:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <list>
using namespace std;
#define R read()
#define GC getchar()
#define ll long long
#define ull unsigned long long
#define INF 0x7fffffff
#define LLINF 0x7fffffffffffffff
ll read(){
ll s=0,f=1;
char c=GC;
while(c<'0'||c>'9'){if(c=='-')f=-f;c=GC;}
while(c>='0'&&c<='9'){s=s*10+c-'0';c=GC;}
return s*f;
}
struct node{
string id;
int s;
}p[130010];
int n;
int book[20],goods;
string goodBook[130010];
bool cmp(node x,node y){
return x.id<y.id;
}
bool cmp_str(string x,string y){
return x<y;
}
int main(){
cin>>n;
for(int i=1;i<=n;++i){//输入,以及记录各个分数段的人数
cin>>p[i].id>>p[i].s;
if(p[i].s>=1&&p[i].s<=9)++book[1];
else if(p[i].s>=10&&p[i].s<=19)++book[2];
else if(p[i].s>=20&&p[i].s<=29)++book[3];
else if(p[i].s>=30&&p[i].s<=39)++book[4];
else if(p[i].s>=40&&p[i].s<=49)++book[5];
else if(p[i].s>=50&&p[i].s<=59)++book[6];
else if(p[i].s>=60&&p[i].s<=69)++book[7];
else if(p[i].s>=70&&p[i].s<=79)++book[8];
else if(p[i].s>=80&&p[i].s<=89)++book[9];
else if(p[i].s>=90&&p[i].s<=99)++book[10];
else if(p[i].s>=100&&p[i].s<=109)++book[11];
else if(p[i].s>=110&&p[i].s<=119)++book[12];
else if(p[i].s>=120&&p[i].s<=129)++book[13];
else if(p[i].s>=130&&p[i].s<=139)++book[14];
else if(p[i].s>=140&&p[i].s<=149)++book[15];
else if(p[i].s==150)goodBook[++goods]=p[i].id;
}
printf("1~9 10~19 20~29 30~39 40~49 50~59 60~69 70~79 80~89 90~99 100~109 110~119 120~129 130~139 140~149\n");
for(int i=1;i<=15;++i){//输出各个分数段的人数
printf("%d ",book[i]);
}
printf("\n");
sort(p+1,p+n+1,cmp);//排序
for(int i=1;i<=n;++i){
cout<<p[i].id<<" "<<p[i].s<<"\n";
}
printf("%d\n",goods);//输出满分人数以及满分的学号
if(goods==0){
printf("No\n");
return 0;
}
sort(goodBook+1,goodBook+goods+1,cmp_str);
for(int i=1;i<=goods;++i){
cout<<goodBook[i]<<"\n";
}
return 0;
}

T133308 57级返校测试重测-T3-成绩单的更多相关文章

  1. T133316 57级返校测试重测-T4-字符串的修改

    大致题意: 有一个A字符串和一个B字符串, 操作将A或A的一个后缀修改为B, 求最少的操作数. 有三个操作为: 删除: 删除掉 A 中的某一个字符. 添加: 将某一个字符添加到 A 中任意位置. 替换 ...

  2. T133309 57级返校测试重测-T2-选票统计

    大致题意: 找出个数超过n/4的数们. 基本思路: 一开始我是用map做的,然后就很玄学的TLE了. 啊,那就换个法吧. 先排个序,然后一样的数就在一起了, 再然后直接从前往后遍历一下,就能得出结果了 ...

  3. T133305 57级返校测试重测-T1-数字配对

    大致题意: 给定偶数个的数字,操作使得两两配对后的最大值最小. 基本思路: 先排序,然后设i=1,j=n(序列以下标1开始), 每次配对为a[i]+a[j],然后++i,--j. 最后找到最大的配对结 ...

  4. python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制

    一.html报告错误截图 这次介绍pytest第三方插件pytest-html 这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告 今天在这 ...

  5. 7.20试机测 T3 阶乘之和 暴力AC题解

    7.20试机测  T3 阶乘之和 暴力AC题解 题外话:此乃本蒟蒻发表的第一篇题解,大家多多关照,支持一下,谢谢 题面 3.阶乘之和(sum.pas/in/out) 问题描述: 给定一个非负整数 n, ...

  6. app测试、web测试-怎么测?

    app测试 前言 看过许多大神对APP测试的理解,博主总结了一下我们平时测试APP应该注意的一些测试点并结合大神的理解,总结出这篇文章. 一.测试周期 测试周期一般为两周,根据项目情况以及版本质量可适 ...

  7. App测试需要测什么

    App,做为当下最热的手机安装软件,无论是产品本身的设计还是性能,易用性等都是非常受考验.一个app能在用户的手机上使用,并作为一个长期用户是非常不容易的.那么,App的测试中我们到底要测试什么呢? ...

  8. Java 整体测试重点题 错题积累

    重点题    错题积累 1: 解析: %d:用来设置输出日志的日期和时间 %m:用来输出代码中指定的消息 %n:用来输出一个回车换行符 %l:用来输出日志事件的发生位置 %p:用来输出优先级 %f:用 ...

  9. csp-s模拟测试101的T3代码+注释

    因为题目过于大神所以单独拿出来说.而且既然下发std了颓代码貌似也不算可耻233 很难讲啊,所以还是写在代码注释里面吧 因为比较认真的写了不少注释,所以建议缩放到80%观看,或者拿到gedit上 1 ...

随机推荐

  1. IDEA自定义类注释和方法注释(自定义groovyScript方法实现多行参数注释)

    一.类注释 1.打开设置面板:file -> setting -> Editor -> file and code Templates 选择其中的inclues选项卡,并选择File ...

  2. 在执行jar包时如何使用调优参数

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 使用时去掉换行 ...

  3. java web20套项目

    http://shenghuo.lshou.com/c4154/t5bdbcc98b9a9.html

  4. 在树莓派上读取DHT11温湿度传感器-python代码实现及常见问题(全面简单易懂)

    最近由于自己的课题需要,想要用在树莓派上使用DHT11温湿度传感器来读取空气中温湿度,遇到了几个问题,解决之后也对之前的知识进行了回顾,总结,特整理如下,希望能给也在学习树莓派的小伙伴们带来一些帮助. ...

  5. Python3-apscheduler模块-定时调度

    from apscheduler.schedulers.background import BackgroundScheduler, BlockingScheduler from apschedule ...

  6. MySQL 合并查询,以map或对象的形式返回

    转载 CSDN博主「小林子林子」 -> https://blog.csdn.net/qq_26106607/article/details/84961254 原始SQL-> 目的-> ...

  7. yum只下载不安装

    1 修改/etc/yum.conf的keepcache=1 [root@136 packages]# vi /etc/yum.conf keepcache=1 2 安装yum-utils包 [root ...

  8. 全国计算机等级考试二级笔试样卷Java语言程序设计

    一.选择题((1)-(35)每小题2分,共70分) 下列各题A).B).C).D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分. (1)下列选项中不符合良好程 ...

  9. 《UNIX环境高级编程》(APUE) 笔记第十一章 - 线程

    11 - 线程 Github 地址 1. 线程概念 典型的 UNIX进程 可以看成只有一个 控制线程 :一个进程在某一时刻只能做一件事情.有了 多个控制线程 ,就可以把进程设计成在某一时刻能够做不止一 ...

  10. matplotlib中文显示乱码解决方法

    在学习<机器学习实战>这本书的决策树一章时,要用matplotlib画出决策树,然而在显示中文时出现了乱码 import matplotlib.pyplot as plt #定义文本框和箭 ...