T133308 57级返校测试重测-T3-成绩单
大致题意:
- 给定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-成绩单的更多相关文章
- T133316 57级返校测试重测-T4-字符串的修改
大致题意: 有一个A字符串和一个B字符串, 操作将A或A的一个后缀修改为B, 求最少的操作数. 有三个操作为: 删除: 删除掉 A 中的某一个字符. 添加: 将某一个字符添加到 A 中任意位置. 替换 ...
- T133309 57级返校测试重测-T2-选票统计
大致题意: 找出个数超过n/4的数们. 基本思路: 一开始我是用map做的,然后就很玄学的TLE了. 啊,那就换个法吧. 先排个序,然后一样的数就在一起了, 再然后直接从前往后遍历一下,就能得出结果了 ...
- T133305 57级返校测试重测-T1-数字配对
大致题意: 给定偶数个的数字,操作使得两两配对后的最大值最小. 基本思路: 先排序,然后设i=1,j=n(序列以下标1开始), 每次配对为a[i]+a[j],然后++i,--j. 最后找到最大的配对结 ...
- python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制
一.html报告错误截图 这次介绍pytest第三方插件pytest-html 这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告 今天在这 ...
- 7.20试机测 T3 阶乘之和 暴力AC题解
7.20试机测 T3 阶乘之和 暴力AC题解 题外话:此乃本蒟蒻发表的第一篇题解,大家多多关照,支持一下,谢谢 题面 3.阶乘之和(sum.pas/in/out) 问题描述: 给定一个非负整数 n, ...
- app测试、web测试-怎么测?
app测试 前言 看过许多大神对APP测试的理解,博主总结了一下我们平时测试APP应该注意的一些测试点并结合大神的理解,总结出这篇文章. 一.测试周期 测试周期一般为两周,根据项目情况以及版本质量可适 ...
- App测试需要测什么
App,做为当下最热的手机安装软件,无论是产品本身的设计还是性能,易用性等都是非常受考验.一个app能在用户的手机上使用,并作为一个长期用户是非常不容易的.那么,App的测试中我们到底要测试什么呢? ...
- Java 整体测试重点题 错题积累
重点题 错题积累 1: 解析: %d:用来设置输出日志的日期和时间 %m:用来输出代码中指定的消息 %n:用来输出一个回车换行符 %l:用来输出日志事件的发生位置 %p:用来输出优先级 %f:用 ...
- csp-s模拟测试101的T3代码+注释
因为题目过于大神所以单独拿出来说.而且既然下发std了颓代码貌似也不算可耻233 很难讲啊,所以还是写在代码注释里面吧 因为比较认真的写了不少注释,所以建议缩放到80%观看,或者拿到gedit上 1 ...
随机推荐
- 关于时间格式 GMT,UTC,CST,ISO
GMT: 格林尼治所在地的标准时间 UTC: 协调世界时,又称世界统一时间.世界标准时间.国际协调时间.由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC. 协调世界时是以原子时秒长为 ...
- cb43a_c++_STL_算法_删除_(1)remove_remove_if
cb43a_c++_STL_算法_删除_(1)remove_remove_ifremove()remove_if() 注意:1.并不是真正的删除,而是把后面的元素向前移动,覆盖被删除元素,元素个数并没 ...
- Bestcoder Round8
4989Summary 既然用C++了就偷懒直接用STL大法了 #include<iostream> #include<algorithm> #include<vecto ...
- .NET Core Hangfire周期性作业调度问题
前言 四月中旬Hangfire团队发布了1.7.11版本,在使用周期性作业调度过程中发现一个问题,这个问题应该一直未解决,故做此记录,希望遇到的童鞋根据项目业务而避开这个问题. 周期性作业调度 我们依 ...
- Jmeter系列(30)- 详解 JDBC Request
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 前言 JDBC Request 主要是 ...
- 洛谷 P1194 【买礼物】
这道题其实就是转化一个模型就可以了. 买了一个另外一个又优惠,其实就相当于在优惠的时候连一条边,因为不可能多买,所以就是建一棵最小生成树.最后因为肯定买了一件物品,要加上最初的单价. 代码: #inc ...
- windows挂载nas存储
操作系统:windows server 2016 1.安装nfs客户端打开程序面板 2.点击下一步 3.点击下一步 4.下一步 5.这里只选择文件和存储服务器就可以 6.选择nfs客户端,安装 7.m ...
- Linux必须要掌握的命令
Linux必须要掌握的命令 文件目录操作命令 ls 命令格式:ls [选项] [目录名] 命令功能:列出目标目录中所有的子目录和文件 常用参数:-a,-l,-R, 例1:列出/home/peidach ...
- java语言基础(六)_String类_static_Arrays类_Math类
String类 1. 使用 java.lang.String类代表字符串.lang包含的包不用特意引用,即默认已经引用了. API当中说:Java 程序中的所有字符串字面值(如 "abc&q ...
- (四)ansible 通过堡垒机访问内网服务器
场景: 在ansible的使用过程中,存在这样的场景,ansible所在的管理节点与被管理的机器需要 通过一个跳板机才能连接,无法直接连接.要解决这个问题,并不需要在 ansible里做什么处 ...