PAT (Basic Level) Practise (中文)-1038. 统计同成绩学生(20)
PAT (Basic Level) Practise (中文)-1038. 统计同成绩学生(20) http://www.patest.cn/contests/pat-b-practise/1038
本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入格式:
输入在第1行给出不超过105的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。
输出格式:
在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空格分隔,但行末不得有多余空格。
输入样例:
10
60 75 90 55 75 99 82 90 75 50
3 75 90 88
输出样例:
3 2 0
这道题,题目简洁,信息类别少,数据量小,input简单,output简单。
我见过有人写了一百多行的代码,功能很全,按分数排序、每一分数值的统计、二分查找某一分数,每一个子功能都很优化,是段很完美的代码。
但是想一下,我们做这道题时,是在锻炼自己的编程能力?回忆自己学过的算法?还是为了解决一个问题? 考试时这么干毕竟耗时耗力,并且处理复杂,一旦出错,要排查很多地方。
分析:这道题要求的结果是指定分数的学生人数,也就是有效信息只是一个分数和这个分数的学生人数。
所以我们只需要设法保存这两个信息就可以了。为了节省时间,最简单的方法就是用分数值作下标。而分数只可能取值0~100,所以开一个int [101]即可。而学生总人数不超过100000,int足够使用了。 省时省力省内存,并不能再精简了,努力做一个精简主义的孩子,省感情。
#include<cstdio> int main()
{
int fenshu[]={},chafen=;
int num=,temp=;
scanf("%d",&num);
for(int i=;i<num;i++)
{
scanf("%d",&temp);
if(<=temp && temp<=) fenshu[temp]++;
}
scanf("%d",&num);
for(int i=;i<num;i++)
{
scanf("%d",&chafen);
if(i) printf(" %d",fenshu[chafen]);
else printf("%d",fenshu[chafen]);
}
return ;
}
我已经原谅自己并不能再渣的英语水平了。。。I AM WHAT I AM...
PAT (Basic Level) Practise (中文)-1038. 统计同成绩学生(20)的更多相关文章
- PAT (Basic Level) Practise:1038. 统计同成绩学生
[题目链接] 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最 ...
- PAT 1038 统计同成绩学生(20)(代码)
1038 统计同成绩学生(20)(20 分) 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过10^5^的正整数N,即学生总人数.随后1行给出N名学生 ...
- PAT-乙级-1038. 统计同成绩学生(20)
1038. 统计同成绩学生(20) 时间限制 250 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求读入N名学生的成绩,将 ...
- PAT (Basic Level) Practice (中文)1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即学生总人数.随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔.最 ...
- PAT Basic 1038 统计同成绩学生 (20 分)
本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第 1 行给出不超过 1 的正整数 N,即学生总人数.随后一行给出 N 名学生的百分制整数成绩,中间以空格分隔.最 ...
- PAT 1038. 统计同成绩学生(20)
本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查 ...
- PATB 1038. 统计同成绩学生(20)
https://www.patest.cn/contests/pat-b-practise/1038 #include <cstdio> int cnt[110]; int temp[10 ...
- 1038 统计同成绩学生 (20 分)C语言
题目描述 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入描述: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1 ...
- PAT(B) 1038 统计同成绩学生(C)统计
题目链接:1038 统计同成绩学生 (20 point(s)) 题目描述 本题要求读入 N 名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式 输入在第 1 行给出不超过 105 的正整 ...
随机推荐
- POJ3191【(-2)进制本质】
题意: 实现10进制数转换成-2进制数 思路: 有点意思,先扯些题外话,一个我们经常做的二进制:利用二进制有好多优化,大多都是利用了二进制能够表示一个数,然后优化了空间或者时间. 所以问题很清楚啊,就 ...
- profiler Reserved Total
Used Total和Reserved 均是物理内存,其中Reserved是unity向系统申请的总内存,Unity底层为了不经常向系统申请开辟内存,开启了较大一块内存作为缓存,即所谓的Reserve ...
- python 函数 之 用户注册register()
db_path='db.txt' #定义默认文件路径,方便修改def get_uname(): while True: uname=input('请输入用户名:').strip() if uname. ...
- Oracle Java SE 组件概念图
JDK1.8 组件概念图
- 使用命令动态更新JAR包中的文件
动态更新JAR包中的文件,经本人实际测试可正常执行! 一.查询jar包中要替换的文件位置 jar -tvf gateway.jar | grep topjui.config.js 二.在当前 ...
- icekingdom(2018.10.17)
一句话题意:给你一颗n个点的树,节点初始状态下都是白色,有q次修改,每次修改会把[li,ri]区间内的点染成黑色,并且问黑色点能形成几个联通块,然后会将所有点染回白色.(也就是说每次都只有[li,ri ...
- 洛谷 P3830 [SHOI2012]随机树
https://www.luogu.org/problemnew/show/P3830 具体方法见代码.. 其实挺神奇的,概率可以先算出“前缀和”(A小于等于xxx的概率),然后再“差分”得到A恰好为 ...
- getpass不起作用
#! /usr/bin/env python# -*- coding:utf-8 -*- # login 模块中登录时输入密码,想用getPass模块实现密码的不回显操作.#如下: import ge ...
- python 生成器与迭代器
#! /usr/bin/env python# -*- coding:utf-8 -*- def xrange(n): num = 0 while True: if num > n: retur ...
- C#连接Oracle中文乱码问题解决方法
1.打开注册表:开始-运行-regedit HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraDb11g_home1/OLEDB 在右侧点鼠标右键- ...