
PAT乙级
Roxannekkk
这个作者很懒,什么都没留下…
展开
-
PAT-2019年冬季考试-乙级-7-5区块反转
给定一个单链表 L,我们将每 K 个结点看成一个区块(链表最后若不足 K 个结点,也看成一个区块),请编写程序将 L 中所有区块的链接反转。例如:给定 L 为 1→2→3→4→5→6→7→8,K 为 3,则输出应该为 7→8→4→5→6→1→2→3。输入格式:每个输入包含 1 个测试用例。每个测试用例第 1 行给出第 1 个结点的地址、结点总个数正整数 N (≤105 )、以及正整数...原创 2019-12-15 19:23:02 · 278 阅读 · 0 评论 -
PAT-2019年冬季考试-乙级-7-3String复读机
给定一个长度不超过 104 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 StringString… (注意区分大小写)这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 String 的顺序打印,直到所有字符都被输出。例如 gnirtSSs 要调整成 StringS 输出,其中 s 是多余字符被忽略。输入格式:输...原创 2019-12-15 18:33:58 · 645 阅读 · 0 评论 -
PAT-2019年冬季考试-乙级-7-2老鼠爱大米
翁恺老师曾经设计过一款 Java 挑战游戏,叫“老鼠爱大米”(或许因为他的外号叫“胖胖鼠”)。每个玩家用 Java 代码控制一只鼠,目标是抢吃尽可能多的大米让自己变成胖胖鼠,最胖的那只就是冠军。因为游戏时间不能太长,我们把玩家分成 N 组,每组 M 只老鼠同场竞技,然后从 N 个分组冠军中直接选出最胖的冠军胖胖鼠。现在就请你写个程序来得到冠军的体重。输入格式:输入在第一行中给出 2 个正整数...原创 2019-12-15 18:30:00 · 417 阅读 · 0 评论 -
PAT-2019年冬季考试-乙级-7-1 2019数列
把 2019 各个数位上的数字 2、0、1、9 作为一个数列的前 4 项,用它们去构造一个无穷数列,其中第 n(>4)项是它前 4 项之和的个位数字。例如第 5 项为 2, 因为 2+0+1+9=12,个位数是 2。本题就请你编写程序,列出这个序列的前 n 项。输入格式:输入给出正整数 n(≤1000)。输出格式:在一行中输出数列的前 n 项,数字间不要有空格。输入样例:10...原创 2019-12-15 18:24:55 · 382 阅读 · 0 评论 -
感受及规划
花了一段时间,总算做完了PAT乙级。在最开始的时候,代码能力不是特别强,先做了一些杭电的题。自以为有了一点基础,觉得做个pat乙级还不是非常easy,可越做到后面,越发现自己的基础还是很不牢固,根基不稳。也越来越正视自己的不足,代码还是越敲越熟的,需要一直磨练下去;有些题,看了其他人的题解才能做下去,到最后几道题,为了赶时间直接没有自己的思考,就看实在不应该。给自己总结一些要点:1.要注意认...原创 2019-12-06 22:16:48 · 115 阅读 · 0 评论 -
1080 MOOC期终成绩
题目链接// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<string>#include<...原创 2019-12-06 22:04:12 · 135 阅读 · 0 评论 -
1085 PAT单位排行
题目链接思路借鉴分析:两个map,一个cnt用来存储某学校名称对应的参赛人数,另一个sum计算某学校名称对应的总加权成绩。每次学校名称string school都要转化为全小写,将map中所有学校都保存在vector ans中,类型为node,node中包括学校姓名、加权总分、参赛人数。对ans数组排序,根据题目要求写好cmp函数,最后按要求输出。对于排名的处理:设立pres表示前一个学校的加...原创 2019-12-06 21:16:30 · 124 阅读 · 0 评论 -
1095 解码PAT准考证
第一遍写的时候没有写出来;编号为3的命令,按照我的思路不太好写;只得重来;且有超时的情况;写的时候也习得了一个新的知识点-》;//str.substr(n, len) //从第n位开始,长度为len的子串!之前把第二个参数一直理解成到第length位来去,一直跑不对qaq;#pragma warning(disable:4996);#include <iostream>#i...原创 2019-12-06 20:03:51 · 109 阅读 · 0 评论 -
1075 链表元素分类
题目链接利用c++做:将结点用list[10000]保存,list为node类型,node中保存结点的值value和它的next地址。list的下标就是结点的地址。将<0、0~k、>k三部分的结点地址分别保存在v[0]、v[1]、v[2]中,最后将vector中的值依次输出#pragma warning(disable:4996);#include <iostream&g...原创 2019-12-05 21:21:07 · 109 阅读 · 0 评论 -
1073 多选题常见计分法 (20分)
题目链接代码参考大神思路:一个数组用来存储正确的答案, 一个用来存储学生的答案.完全正确, 全部选项匹配才能完全正确错误, 学生选了这个选项, 也就是响应的某项标记1, 而正确答案没有这项, 则该题错误 只要该题的选项和正确答案不匹配, 就标记为1个错误(该题没选, 该题值当成0)部分正确, 余下的的用else, 也就是部分正确的情况#include <stdio.h&...原创 2019-12-04 23:00:22 · 265 阅读 · 0 评论 -
1089 狼人杀-简单版
#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<string>#include<stack>#include<math.h>#include<vector>using na...原创 2019-12-04 19:46:20 · 106 阅读 · 0 评论 -
1068 万绿丛中一点红
题目链接#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<string>#include<stack>#include<math.h>#include<vector>usi...原创 2019-12-03 21:26:05 · 134 阅读 · 0 评论 -
1079 延迟的回文数
题目链接注意点:1.利用了昨天新学到的reverse,但他不能把反转后的结果赋给另一个字符串;所以我利用了两次反转; string b; reverse(s.begin(), s.end());//发现不能直接反转 b = s; reverse(s.begin(), s.end());2.手动模拟加法;如果最后有进位,要化成字符加入字符串的最前面...原创 2019-12-03 14:18:57 · 87 阅读 · 0 评论 -
1025 反转链表
题目链接#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<string>#include<stack>#include<math.h>#include<vector>usi...原创 2019-12-02 23:05:54 · 93 阅读 · 0 评论 -
1090 危险品装箱 c语言
题目链接代码中有注释,容易理解;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm>#include<str...原创 2019-12-02 21:59:09 · 632 阅读 · 0 评论 -
1024 科学计数法
题目链接先找到E的位置;从E的位置加一到末尾来计算指数的大小,也是我们添加0的长度;依据此来分类讨论;(注意如果开头为负号,则输出时,要加上负号)1.当指数大小为0时,我们仅需,从第一个字符输出直到‘E’前为止;2.若指数大小不为0,分为大于0,和小于0来讨论;(1)当大于0时,但小于小数位数(i-3)时,输出下标从3即小数部分第1个数字的位置开始指数大小的字符–》j=3,j<3+...原创 2019-12-02 19:15:51 · 297 阅读 · 0 评论 -
1035 插入与归并
题目链接注意:归并排序,在执行时,先执行左半边再执行右半边。(递归时)插入排序,(注意和简单选择排序区分),按顺序依次取,放入有序序列中正确的位置,所以不会改变数组顺序,利用这个作为判定标准;for循环单独写,没有循环体时,即只为了单纯调整i,j值,需在后加分号;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pr...原创 2019-12-01 22:56:26 · 116 阅读 · 0 评论 -
1055 集体照
题目链接思路:建立结构体stu,里面包含字符串类型的姓名name和int类型的身高height,然后对stu数组进行排序(cmp函数表示排序规则,如果身高不等,就按照身高从大到小排列;如果身高相等,就按照名字从小到大的字典序排列)然后用while循环排列每一行,将每一行应该排列的结果的姓名保存在ans数组中因为是面对拍照者,后排的人输出在上方,前排输出在下方,每排人数为N/K(向下取整),多...原创 2019-12-01 19:12:56 · 198 阅读 · 0 评论 -
1034 有理数四则运算
题目链接没说范围,最好用long long 测试点也确实超过了int;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm&...原创 2019-11-28 21:14:46 · 92 阅读 · 0 评论 -
1044 火星数字
题目链接先判断判断输入的是地球数字还是火星文,第二步是分割火星文字符,其三才是两者之间的转化。注意火星文的13只是一个tam,26只是一个hel。所以如果是两个位的话,要根据%13之后的余数是否为0,判断转换为火星文之后是有两个单词,还是一个单词。利用 strtok --char *strtok(char s[], const char *delim);分解字符串为一组字符串。s为要分解的...原创 2019-11-27 21:47:28 · 245 阅读 · 0 评论 -
1015 德才论
题目链接一开始没看明白题意,绕进去了,看了别的博主的博文,明白了思路:即,利用题目所给信息分类,再利用排序顺序,写出排序的方法,对每一类学生进行即可;此处采用的vector来分类(感觉可以利用创建四个大的结构体数组来做,就是略微麻烦)// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disa...原创 2019-11-27 19:26:20 · 74 阅读 · 0 评论 -
1094 谷歌的招聘
学到了两个新的方便做题的函数:atoi(char a[])//将字符串转为数字;char *strncpy(char *dest, const char *src, int n),表示把src所指向的字符串中以src地址开始的前n个字节复制到dest所指的数组中,并返回被复制后的dest。思路:使用了一个char[10]数组,每一次从字符串中使用strncpy复制K个字符过来,用atoi转化为...原创 2019-11-25 22:38:33 · 88 阅读 · 0 评论 -
1014 福尔摩斯的约会
题目链接题目不难,但是得认真做;要注意的点:1.不是单纯的找在每两段字符相同的;而是找对应位置相同的,且字符也相同的;2.再找星期的时候锁定字符应该在A-G;3.读几点的时候,要注意这个相等字符要在星期字符之后,所以我把i设成了全局变量,并用flag退出第一个字符的查找循环;第二个循环利用++i,做开始条件;4.第二个星期查找锁定字符在0-9,A-N;5.注意输出格式的控制;// ...原创 2019-11-25 21:49:00 · 84 阅读 · 0 评论 -
1052 卖个萌
题目链接代码中有注释;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h...原创 2019-11-25 20:24:17 · 86 阅读 · 0 评论 -
1074 宇宙无敌加法器 c语言实现
题目链接没有分模块写,然后逐步完善,而是直接一步写到位,真的很麻烦,不过好在最后ac了;思路:因为题目说可能有20位,所以没有考虑数字型,直接拿字符型做;题目中有说到输入首先在第一行给出一个 N 位的进制表(0 < N ≤ 20),以回车结束。 随后两行,每行给出一个不超过 N 位的非负的 PAT 数。所以分下面几种情况考虑:1.a,b,进位串长度相等;2.a长度大于b —...原创 2019-11-25 18:22:44 · 390 阅读 · 0 评论 -
1050 螺旋矩阵
题目链接// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#in...原创 2019-11-24 22:48:42 · 127 阅读 · 0 评论 -
1084 外观数列
题目链接代码中有注释;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h...原创 2019-11-24 21:20:06 · 130 阅读 · 0 评论 -
1078 字符串压缩与解压
题目链接注解在代码中// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h&...原创 2019-11-23 22:44:32 · 141 阅读 · 0 评论 -
1065 单身狗
题目链接看了很多博主之后做出来的;思路:1.一对夫妇ID保存在数组中两个元素中, 形成双向的映射,(互存对方的id);2.逐一读取来客ID:如果ID有对应值, 说明有配偶, 数组相应位置标记"已签到",如果ID没有对应值, 说明是单身狗, 数组相应位置标记"落单";3.遍历数组, 不管值为"已签到"和"落单"的. 如果一个ID对应有非负值(即合法ID值,说明他/她是有配偶的), 进一步如...原创 2019-11-23 21:25:26 · 116 阅读 · 0 评论 -
1053 住房空置率
题目链接题不难,但自己因为分心坐了好久才做出来。。。,敲代码容不得一次马虎。。。题目要注意的点:若存在超过一半的日子用电量低于某给定的阈值e,则该住房为“可能空置”,若观察期超过某给定阈值D天,且满足上一个条件,则该住房为“空置”。可能空置和空置两者相互独立。应分别计算。// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#...原创 2019-11-22 21:12:45 · 90 阅读 · 0 评论 -
1040 有几个PAT
题目链接要是单纯用遍历的思想肯定会超时;此时我们的思路是:遍历字符串后对于每一A,它前面的P的个数和它后面的T的个数的乘积就是能构成的PAT的个数,然后把对于每一个A的结果相加即可;只需要先遍历字符串数一数有多少个T然后每遇到一个T呢cntc–;;每遇到一个P呢,cnta++;然后一遇到字母A呢就countt * countp把这个结果累加到cntb中最后输出结果就可以了。(因为我们是顺序遍历...原创 2019-11-22 20:07:31 · 78 阅读 · 0 评论 -
1045 快速排序
题目链接一开始做,只是想简单的暴力解法O(n^2)的效率,但当最坏的情况时,计算量级100000*100000远远超过了一次运算的最高量级,会超时,所以不能这么做;所以在查询了之后,改进的做法:对原序列sort排序,逐个比较,当当前元素没有变化并且它左边的所有值的最大值都比它小的时候就可以认为它一定是主元(很容易证明正确性的,毕竟无论如何当前这个数要满足左边都比他小右边都比他大,那它的排名...原创 2019-11-22 18:12:59 · 123 阅读 · 0 评论 -
1093 字符串A+B
题目链接坚持不用string的我还是用了string,真香;思路是用数组hash标记一下是否是第一次输出即可(字符本身是一个ASCII码值,可当作整数用)尝试用char来写,但运用两个循环分别输出a,b的不重叠的字符时会加个回车;完成的格式类似这个;后面又利用strcpy复制到一个数组在做但有一个样例不对This ampletowyu_Hrk// ConsoleApplicati...原创 2019-11-21 22:31:19 · 139 阅读 · 0 评论 -
1070 结绳
题目链接刚拿到题,先手算了一下,发现算不到给的答案,想了想,觉得需要按照某种顺序选取折叠,显示了一下由大到小的顺序,发现更小了,得到了里面的核心思想即:升序排列数组,每次按相加求和/2来做,大的放在后面保证了损失的值少。否则就会导致前面会损失很多值,导致得不到max// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pra...原创 2019-11-21 21:23:17 · 114 阅读 · 0 评论 -
1069 微博转发抽奖
题目链接这道题第一次写出来只对了几个测试点,也一直检查不出来,过了好一阵子,重新再看,修改了一些地方,终于ac;注释在代码中// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio....原创 2019-11-20 21:09:39 · 203 阅读 · 0 评论 -
1030 完美数列
题目链接一开始拿到这道题,把题目想的过于简单,单纯的以为对数组排序,设置一个计数符,对满足要求元素,加一即可;最初的代码:// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdio.h...原创 2019-11-20 20:33:03 · 142 阅读 · 0 评论 -
1039 到底买不买
题目链接思路借鉴了类似1043 输出patest 对每个字符记录;分别记录提供的每一个字符的每个个数以及实际需要的字符的个数;运用循环,如果提供的字符串对应字符的个数>实际需要字符串的字符的个数,则为多余;记录和如果小于,用另外一个值来记录。最后根据这个值的大小确定是否购买;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开...原创 2019-11-19 22:55:44 · 91 阅读 · 0 评论 -
1043 输出PATest
题目链接这道题我一开始以为非常难,后面才发现只需要统计每个字符的个数,然后根据个数按序输出即可;#pragma warning(disable:4996);#include <iostream>#include<stdio.h>#include<algorithm>#include<string.h>#include<stack&...原创 2019-11-19 22:28:22 · 100 阅读 · 0 评论 -
1062 最简分数 c语言实现
题目链接思路:得到两个分数得值,利用所给的分母,对满足最大公因数为1的每一个分子遍历,处于边界内的即为所求;注意:1.所给的两个分数大小不一定要注意判断才可;2.两个边界不能取到,即是< and >;intput:3/12 7/12 12output:5/12;3.注意格式输出;// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程...原创 2019-11-19 21:49:52 · 1468 阅读 · 0 评论 -
1077 互评成绩计算
题目链接题目不难,关键在于四舍五入这一快需要注意,我利用printf的四舍五入错了,似乎是不能用还是不准确??改了才对;未ac:// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。#pragma warning(disable:4996);#include <iostream>#include<stdi...原创 2019-11-18 22:08:09 · 93 阅读 · 0 评论