PAT备考
记录一些经典算法知识,以及PAT刷题记录,便于复习^_^
执笔思华年
这个作者很懒,什么都没留下…
展开
-
【PAT B1004】 成绩排名 (20 分)
题目描述:读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含 1 个测试用例,格式为第 1 行:正整数 n第 2 行:第 1 个学生的姓名 学号 成绩第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ...第 n+1 行:第 n 个学生的姓名 学号 成绩其中姓名和学号均为不超过 10 ...原创 2019-08-19 10:55:09 · 114 阅读 · 0 评论 -
C++中的sort()函数
sort()就是用来排序的函数,它根据具体情形使用不同的排序方法,效率较高。并且sort在实现中规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n^2)的极端情况。1.如何使用sort排序sort函数的使用必须加上头文件 #include<algorithm> 和 using namespace std; 其使用方式如下:sort(首元素地址(必填),尾...原创 2019-08-14 20:46:24 · 235 阅读 · 2 评论 -
三种排序
冒泡排序给出一个序列a,其中元素个数为n,要求把他们按从小到大的顺序排序。冒泡排序的本质在于交换,即每次通过比较交换的方式把当前带比较元素的最大值移动到一端,而当剩余的元素减少为0时,排序结束。下面举个栗子。。代码实现:#include<cstdio>int main(){ int a[10]={3,1,4,5,2}; for(int i=0;i<...原创 2019-08-14 16:19:41 · 244 阅读 · 0 评论 -
【PAT1009】说反话
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World Her...原创 2019-08-14 11:14:03 · 250 阅读 · 0 评论 -
【字符串】回文串 codeup5901
题目描述读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。输入一行字符串,长度不超过255。输出如果是回文串,输出“YES”,否则输出“NO”。样例输入12321样例输出YES一开始这样写的,,虽然很繁琐zz,但感觉应该没错,然鹅没有通过~#include<cstdio...原创 2019-08-14 00:59:25 · 149 阅读 · 0 评论 -
【PAT1022】D进制的A+B (进制转换问题)
输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103AC代码 :#include<cstdio>int main(){ ...原创 2019-08-14 00:04:57 · 163 阅读 · 0 评论 -
进制转换
这篇通俗易懂haha~https://blog.csdn.net/yuanxiang01/article/details/82503568还有这篇https://blog.csdn.net/whuslei/article/details/6272708以下内容来自《算法笔记》!仅仅便于复习~对于一个P进制的数,若要转换成Q进制,需要分为两布:将p进制数x转换成十进制数y。...原创 2019-08-13 21:38:14 · 154 阅读 · 0 评论 -
日期处理【codeup1928】日期差值
问题 A: 日期差值时间限制: 1 Sec 内存限制: 32 MB题目描述有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出每组数据输出一行,即日期差值样例输入2013010120130105样例输出5AC代码#include<...原创 2019-08-13 20:49:05 · 126 阅读 · 0 评论 -
查找元素——【codeup1934】找x
第一次写博客,记录一下!codeup里面的题目找x!#include<cstdio>int main() { int n,x; int a[210]={0}; //int flag=-1; //不能放在while外面,若这样每次输入查找都会在外面改变flag的值! //若上一次查找到flag在2,下一次输入查找一个不存在的值,因为没有重新给flag赋值...原创 2019-08-13 19:51:19 · 142 阅读 · 0 评论 -
【PAT B1020】 月饼 (25 分) 【简单贪心算法】
贪心法是求解一类·最优化问题的方法,它总是考虑在当前状态下局部最优的策略,用来使全局的结果达到最优。题目描述:月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、1...原创 2019-08-18 17:45:07 · 215 阅读 · 0 评论 -
map的常用用法(STL库)
map翻译为映射,也是常用的STL容器。在定义数组时,其实是定义了一个int型到其他型的映射。如int arry[100],其实就是定义了一个从int型到int型的映射,比如arry[0]=20,arry[1]=30就分别是将0映射到20,1映射到30。它有一个弊端,当需要以其他类型作为关键字是时,就不太容易操作。比如有一本字典,上面由很多单词与单词对应的页码,若用数组表示“单词-->页码”...原创 2019-08-18 15:50:17 · 382 阅读 · 1 评论 -
PAT【B1003】我要通过
题目描述“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串...原创 2019-08-18 13:46:00 · 262 阅读 · 2 评论 -
PAT【B1002】 写出这个数
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wuA...原创 2019-08-17 21:42:08 · 124 阅读 · 0 评论 -
【PAT A1025】PAT Ranking
接这一篇~ https://blog.csdn.net/abcdefggggghk/article/details/99611824 来个例题~1025 PAT Ranking (25 分)Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Z...原创 2019-08-16 01:16:05 · 94 阅读 · 0 评论 -
排序题与sort函数的应用
关于结构体数组类型的排序题~1、相关结构体的定义对于题目中给出了很多个体信息的排序题,考虑定义结构体存放。如student个体:struct Student{ char name[10]; //姓名 char id[10]; //准考证号 int score; //分数 int r; //排名}stu[100010];2、cmp函数的编写使用...原创 2019-08-15 08:58:20 · 148 阅读 · 0 评论 -
【PAT B1013】数素数 (20 分)
令 Pi 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 PM 到 PN 的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 PM 到 PN 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 ...原创 2019-08-26 18:47:37 · 91 阅读 · 0 评论 -
散列
概念散列是一种用于以常数平均时间,执行插入、删除、查找的技术。散列中要查找的数据项叫做关键字(key)。映射:如果表的大小是tableSize,将每个关键词与0-tableSize-1的下标一一对应起来的过程叫做映射。...原创 2019-09-04 00:31:01 · 162 阅读 · 0 评论 -
【PAT B1028】人口普查 (20 分)
某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,10^5];随后 N 行,每行给出 1...原创 2019-09-03 17:44:19 · 301 阅读 · 0 评论 -
关于 lower_bound() 和 upper_bound()
lower_bound()和 upper_bound() 需要用在一个有序数组或容器中。lower_bound(first,last,val) 用来寻找在数组或容器的[first,last)范围内第一个值大于等于val的元素的位置,如果时数组,则返回该位置的指针,如果是容器,则返回该位置的迭代器。upper_bound(first,last,val) 用来寻找在数组或容器的[first,...原创 2019-09-02 12:04:17 · 141 阅读 · 0 评论 -
全排列
next_permutation()函数给出一个序列在全排列中的下一个序列,使用do...while循环即可打印,即可打印出一个序列的全排列。//next_permutation()给出一个序列在全排列中的下一个序列 #include<cstdio>#include<algorithm>using namespace std;int main()...原创 2019-09-02 11:36:56 · 136 阅读 · 0 评论 -
【PAT B1092】最好吃的月饼 (20 分)
月饼是久负盛名的中国传统糕点之一,自唐朝以来,已经发展出几百品种。若想评比出一种“最好吃”的月饼,那势必在吃货界引发一场腥风血雨…… 在这里我们用数字说话,给出全国各地各种月饼的销量,要求你从中找出销量冠军,认定为最好吃的月饼。输入格式:输入首先给出两个正整数 N(≤1000)和 M(≤100),分别为月饼的种类数(于是默认月饼种类从 1 到 N 编号)和参与统计的城市数量。...原创 2019-09-01 21:48:34 · 212 阅读 · 0 评论 -
【PAT B1091】N-自守数 (15 分)
emmmm,前面有不会的,头疼,所以跳着写叭hahaha~~~加油吧!题目描述:如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3×922=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守数。本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。输入格式:输入在第一行中给...原创 2019-09-01 20:53:42 · 175 阅读 · 0 评论 -
【PAT B1023】 组个最小数 (20 分)
题目描述:给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整...原创 2019-09-01 12:04:31 · 96 阅读 · 0 评论 -
【PAT B1021】个位数统计 (15 分)
题目描述:给定一个 k 位整数 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输...原创 2019-09-01 10:39:06 · 88 阅读 · 0 评论 -
【PAT B1018】锤子剪刀布 (20 分)
题目描述:大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤105),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母...原创 2019-08-29 08:56:43 · 126 阅读 · 0 评论 -
【PAT B1017 】A除以B (20 分)
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以 1 空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以 1 空格分隔。输入样例:123456789050987654321 7输出样例:17636684150...原创 2019-08-28 15:07:45 · 101 阅读 · 0 评论 -
【PAT B1016】 部分A+B (15 分)
正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 DA 组成的新整数 PA。例如:给定 A=3862767,DA=6,则 A 的“6 部分”PA 是 66,因为 A 中有 2 个 6。现给定 A、DA、B、DB,请编写程序计算 PA+PB。输入格式:输入在一行中依次给出 A、DA、B、DB,中间以空...原创 2019-08-27 20:37:05 · 91 阅读 · 0 评论