PAT basic
我不是小哥哥
这个作者很懒,什么都没留下…
展开
-
1045 快速排序
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。 给定划分后的 N 个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定 N=5N = 5N=5, 排列是1、3、2、4、5。则:1 的左边没有元素,右边的元素都比它大,所以它可能是主元;尽管 3 的左边元素都比它小,但其右边的 2 比它小,所以它不能是主元;尽管 2 的右边元素都比它大,但其左边的 3 比它大,所以它不能是主元;原创 2020-10-16 21:34:56 · 137 阅读 · 0 评论 -
1058 选择题
批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多。输入格式:输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多选题的个数。随后M行,每行顺次给出一道题的满分值(不超过5的正整数)、选项个数(不少于2且不超过5的正整数)、正确选项个数(不超过选项个数的正整数)、所有正确选项。注意每题的选项从小写英文字母a开始顺次排列。各项间以1个空格分隔。最后N行,每行给出一个学生的答题情况,其每题答案格式为“(选中的选项个数 选项1原创 2020-08-27 23:37:33 · 91 阅读 · 0 评论 -
1088 三人行 (20分) 测试点4
1088 三人行 (20分)子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。”本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值;甲乙两人能力差是丙的能力值的 X 倍;乙的能力值是丙的 Y 倍。请你指出谁比你强应“从之”,谁比你弱应“改之”。输入格式:输入在一行中给出三个数,依次为:M(你自己的能力值)、X 和 Y。三个数字均为不超过 1000 的正整数。输出格式:在一行中首先输出甲的能力值,随后依次输出甲、原创 2020-08-23 00:09:25 · 200 阅读 · 0 评论 -
1062 最简分数 (20分) 测试点1
1062 最简分数 (20分)一个分数一般写成两个整数相除的形式:N/M,其中 M 不为0。最简分数是指分子和分母没有公约数的分数表示形式。现给定两个不相等的正分数 N1/M1和 N2/M2,要求你按从小到大的顺序列出它们之间分母为 K 的最简分数。输入格式:输入在一行中按 N/M 的格式给出两个正分数,随后是一个正整数分母 K,其间以空格分隔。题目保证给出的所有整数都不超过 1000。输出格式:在一行中按 N/M 的格式列出两个给定分数之间分母为 K 的所有最简分数,按从小到大的顺序,原创 2020-08-15 16:07:00 · 507 阅读 · 0 评论 -
1054 求平均值 (20分)
1054 求平均值 (20分)本题的基本要求非常简单:给定 N 个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是 [−1000,1000] 区间内的实数,并且最多精确到小数点后 2 位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数 N(≤100)。随后一行给出 N 个实数,数字间以一个空格分隔。输出格式:对每个非法输入,在一行中输出 ERROR: X is not a legal number,其中 X 是输入。最后在一行中输出原创 2020-08-13 12:12:01 · 131 阅读 · 0 评论 -
PTA basic 刷题 总结
string 头文件str1.find(s) 查找字串#include<cctype> //头文件//判断相等str1.find(s) != string::npos//判断不等str1.find(s) == string::nposstring::npos参数 —— npos 是一个常数,用来表示不存在的位置Ps:cctype包含的其他部分的函数 1. isalnum() 如果参数是字母数字,即字母或数字,该函数返回true 2. isalpha() 如果参数是字原创 2020-08-10 17:41:44 · 362 阅读 · 0 评论 -
1094 谷歌的招聘 (20分). 测试点2,4,5
1094 谷歌的招聘 (20分)2004 年 7 月,谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌(如下图)用于招聘。内容超级简单,就是一个以 .com 结尾的网址,而前面的网址是一个 10 位素数,这个素数是自然常数 e 中最早出现的 10 位连续数字。能找出这个素数的人,就可以通过访问谷歌的这个网站进入招聘流程的下一步。自然常数 e 是一个著名的超越数,前面若干位写出来是这样的:e = 2.71828182845904523536028747135266249775724709369995原创 2020-08-10 17:24:47 · 1108 阅读 · 1 评论 -
1095 解码PAT准考证
1095 解码PAT准考证PAT 准考证号由 4 部分组成:第 1 位是级别,即 T 代表顶级;A 代表甲级;B 代表乙级;第 2~4 位是考场编号,范围从 101 到 999;第 5~10 位是考试日期,格式为年、月、日顺次各占 2 位;最后 11~13 位是考生编号,范围从 000 到 999。现给定一系列考生的准考证号和他们的成绩,请你按照要求输出各种统计信息。输入格式:输入首先在一行中给出两个正整数 N(≤10^4)和 M(≤100),分别为考生人数和统计要求的个数。接下来 N原创 2020-08-10 11:19:08 · 107 阅读 · 0 评论 -
1050 螺旋矩阵 (25分) 测试点1,3,7 超时
1050 螺旋矩阵 (25分)本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N;m≥n;且 m−n 取所有可能值中的最小值。输入格式:输入在第 1 行中给出一个正整数 N,第 2 行给出 N 个待填充的正整数。所有数字不超过 104 ,相邻数字以空格分隔。输出格式:输出螺旋矩阵。每行 n 个数字,共 m 行。相邻数字以 1 个空格分隔,行末不原创 2020-08-04 17:28:57 · 437 阅读 · 0 评论 -
1005 继续(3n+1)猜想 哈希
题目卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n=3 进行验证的时候,我们需要计算 3、5、8、4、2、1,则当我们对 n=5、8、4、2 进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这 4 个数已经在验证3的时候遇到过了,我们称 5、8、4、2 是被 3“覆盖”的数。我们称一个数列中的某个数 n 为“关键数”,如果 n 不能被数列中的其他数字原创 2020-06-26 12:02:23 · 98 阅读 · 0 评论 -
1003 我要通过!第二个测试点解决
赶在今天睡前最后一题(确实水了一天了),debug了好久,终于通过了。话不多说,上题!!!1003 我要通过!题目“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;如果 a原创 2020-06-25 23:27:20 · 847 阅读 · 0 评论 -
1002 写出这个数
本人是个不折不扣的小白一名。为了迅速提升专业能力,开始疯狂刷题,在此记录下自己刷题过程中的的一些心得体会,供今后自己记录,方便查看。欢迎大家批评指正。直入今天的第一道正题1002 写出这个数题目:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。先说这道题非常原创 2020-06-25 16:46:46 · 106 阅读 · 0 评论 -
1048 数字加密.测试点2.5
1048 数字加密 (20分)本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 12;对偶数位,用 B 的数字减去 A 的数字,若结果为负数,则再加 10。这里令个位为第 1 位。输入格式:输入在一行中依次给出 A 和 B,均为不超过 100 位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结果。输入样例:原创 2020-08-03 17:02:13 · 664 阅读 · 3 评论 -
1049 数列的片段和 (20分)测试点2
1049 数列的片段和 (20分)给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段。例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这 10 个片段。给定正整数数列,求出全部片段包含的所有的数之和。如本例中 10 个片段总和是 0.1 + 0.3 +原创 2020-08-03 19:33:05 · 1038 阅读 · 2 评论