PAT 乙级A1025 适合当算法入门练习题做
刚买了算法笔记没几天,最近正在看。。。龟速般的学习速度QAQ,要加快速度了,尽快入门算法吧,不能一直原地踏步了。
感觉对于初学者的我来说,这是一道挺不错的题,不是思维题,很常规。用到了结构体,结构体的排序、和排名问题等知识点。
题目地址:https://pintia.cn/problem-sets/994805342720868352/problems/994805474338127872
简单来说题目就是把每个考场内的考生排名和所以考生的排名输出来,排名相同时学号小在者排在前。
哦!对了!PAT搬家了!现在好像和PTA共用一个网站,题目集也在PTA上,个人觉得比较方便,这样PTA、PAT就不会傻傻分不清楚了哈哈哈
我平时会把学习算法中的一些总结和有对我来说价值的题的代码放在GitHub上,https://github.com/zhangkanqi/BIAN-CHENG-TI-practice/tree/master欢迎follow我哦~学习资源共享,个人亲自总结哒!
这道题在《算法笔记》P103,下面的代码是照着书上打的,不过都已经理解啦!作为个人的博客,我就不过多写注释了(#^.^#)
上代码:
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
struct student{char id[15];int score;int knum;int krank;}stu[30010];
bool cmp(student a,student b)
{if(a.score!=b.score) return a.score>b.score;else return strcmp(a.id,b.id)<0;
}
int main()
{
// freopen("C:\\Users\\dell1\\Desktop\\in.txt","r",stdin);int k,n,i,j,num=0;scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&k);for(j=0;j<k;j++){scanf("%s %d",stu[num].id,&stu[num].score);stu[num].knum=i;num++;}sort(stu+num-k,stu+num,cmp);stu[num-k].krank=1;for(j=num-k+1;j<num;j++){if(stu[j].score==stu[j-1].score) stu[j].krank=stu[j-1].krank;else stu[j].krank=j+1-(num-k);}}printf("%d\n",num);sort(stu,stu+num,cmp);int r=1;for(i=0;i<num;i++){if(i>0&&stu[i].score!=stu[i-1].score)r=i+1;printf("%s %d %d %d\n",stu[i].id,r,stu[i].knum,stu[i].krank);}return 0;}
如果有不明白的可以和我联系哦,一起学习,一起进步,菜鸟每天飞过~
QQ邮箱:1308989543@qq.com
非诚勿扰哦~o(* ̄︶ ̄*)o
PAT 乙级A1025 适合当算法入门练习题做相关推荐
- meta camp+21春季PAT乙级反思
一.成绩: MetaCamp:一题未过,前两题过样例 ''''''''''21春季PAT乙级:49,前三题做完有个别例子没过,第四题没做'出'''来,'第'五'题'不会.第五题贪心算法不会,没有学过, ...
- 终于刷完PAT乙级练习题
今天终于刷完了PAT乙级练习题,从6月14号开始,本来计划一天两道题,开始时进度缓慢,一道题要好久,后面慢慢速度就上来了,最后20道拿来模拟计时训练,四次模拟总算是有提高. 晒一下排名,哈哈 木可堂主 ...
- PAT乙级算法-1014(JAVA实现)
PAT乙级算法-1014(JAVA实现) 注意事项: 解题思路-本题主要是对字符进行操作,A对应的ASCII位65,B的为66 依次加1, 详细解题思路看代码 package pta; import ...
- 适合初步练习PAT乙级——(1039) 到底买不买
适合初步练习PAT乙级--(1039) 到底买不买 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全 ...
- C++入门 PAT乙级B1026 程序运行时间
C++入门 PAT乙级B1026 程序运行时间 题目描述 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 cloc ...
- PAT乙级练习题1030 完美数列
题目: 给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列. 现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列. ...
- PAT乙级练习题1019 数字黑洞
题目: 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑 ...
- 【PAT乙级】题解-1057 数零壹
PAT :计算机程序设计能力考试:一个高校编程学习赛,内容基础,据说题目描述含糊不清,造成诸多理解错误. 第一观感是:输入输出样例极少,未给学生充分理解题目,提供更多辅助. PAT 乙级:只涉及基础编 ...
- 【PAT乙级】题解-1014 福尔摩斯的约会
PAT :计算机程序设计能力考试:一个高校编程学习赛,内容基础,据说题目描述含糊不清,造成诸多理解错误. 第一观感是:输入输出样例极少,未给学生充分理解题目,提供更多辅助. PAT 乙级:只涉及基础编 ...
- 【PAT乙级】题解-1031 查验身份证
PAT :计算机程序设计能力考试:一个高校编程学习赛,内容基础,据说题目描述含糊不清,造成诸多理解错误. 第一观感是:输入输出样例极少,未给学生充分理解题目,提供更多辅助. PAT 乙级:只涉及基础编 ...
最新文章
- 【Flutter】ListView 列表高级功能 ( ScrollController 上拉加载更多 )
- java中c/s模式传送数据
- 灵活运用 SQL Server 数据库的 FOR XML PATH
- php输出图片没有,ThinkPHP里无法输出图片 设置响应头
- 哈儿小波分解和重构(降维和升维)实现算法
- vue项目实现登录(sessionStorage 存储 token)
- WCF创建WebService正确操作步骤详解
- db2 9.7 64位_2020年使用2016年的第一代9.7英寸 Ipad pro?
- RFC2616中文版(8)连接
- dirent--文件以及文件夹相关操作(跨平台)
- get/post在线接口
- 神经网络反向传播算法及代码实现
- 端端Clouduolc同步索引简述
- 记录下SPADE(GauGan)的学习心得
- ShaderJoy —— 烟花爆炸特效【GLSL】
- Linux----vim、账号管理、进程管理、磁盘管理、java环境安装
- 使用Wiredtiger恢复MongoDB中collection-x-xxx.wt文件数据
- Python入门练习选择题
- 考试提交答案后台代码
- Android开发中根据图片名称获取在drawable中的ID
热门文章
- C4996	'sprintf': This function or variable may be unsafe.
- avs php,linux 安装AdultVideoScript (AVS)全教程
- 程序员找工作?只凭感觉去面试?不要做白日梦了,程序员必备面试题,脱口而出的专业语言,让你的薪水翻一番,建议收藏
- oracle votedisk ocr,Oracle 11gR2 RAC OCR和votingdisk故障恢复案例
- 工业循环冷却水处理设计规范_循环冷却水系统及其水处理
- 重置浏览器的css,css重置浏览器默认样式
- [转]项目中常用的19条MySQL优化
- Windows Azure Cloud Service (25) 使用Startup注册COM组件(下)
- mysql ON DUPLICATE KEY UPDATE重复插入时更新
- 《.Ne框架程序设计》随记(3)