PAT basic
不要绝望总会慢慢变强
当你觉得整个世界都放弃了你,还有那几行代码值得你珍重!
展开
-
关于scanf不能读入回车和空格
最近在OJ上编程时发现,scanf不能读入回车和空格两个字符,需要用getchar来读入,程序如下:#include<cstdio>#include<iostream>using namespace std;int main(){ int n; char a,b; scanf("%d",&n); getchar(); ...原创 2020-03-10 21:46:02 · 2205 阅读 · 0 评论 -
PAT1033旧键盘
1033 旧键盘打字(20)(20 分)旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?输入格式:输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过10^5^个字符的串。可用的字符包括字母[a-z,A-Z]、数字0-9、以及下划线“_”(代...原创 2018-07-04 22:33:06 · 661 阅读 · 0 评论 -
PAT Basic1043
1043 输出PATest(20)(20 分)给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest....”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。输入格式:输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串...原创 2018-07-11 21:19:31 · 112 阅读 · 0 评论 -
PAT Basic1057
1057 数零壹(20 分)给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一下 N 的二进制表示中有多少 0、多少 1。例如给定字符串 PAT (Basic),其字母序号之和为:16+1+20+2+1+19+9+3=71,而 71 的二进制是 1000111,即有 3 个 0、4 个 ...原创 2018-07-17 23:17:43 · 198 阅读 · 0 评论 -
PAT Basic1045(复习+)
1045 快速排序(25)(25 分)著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边。给定划分后的N个互不相同的正整数的排列,请问有多少个元素可能是划分前选取的主元?例如给定N = 5, 排列是1、3、2、4、5。则:1的左边没有元素,右边的元素都比它大,所以它可能是主元;\尽管3的左边元素都比它...原创 2018-07-12 22:25:48 · 415 阅读 · 0 评论 -
PAT Basic1085
1085 PAT单位排行(25 分)每次 PAT 考试结束后,考试中心都会发布一个考生单位排行榜。本题就请你实现这个功能。输入格式:输入第一行给出一个正整数 N(≤105),即考生人数。随后 N 行,每行按下列格式给出一个考生的信息:准考证号 得分 学校其中准考证号是由 6 个字符组成的字符串,其首字母表示考试的级别:B代表乙级,A代表甲级,T代表顶级;得分是 [0,...原创 2018-07-19 21:49:38 · 303 阅读 · 0 评论 -
PAT Basic1049(考察数据类型范围《attention》)
1049 数列的片段和(20)(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个片段。给定...原创 2018-07-14 18:45:59 · 216 阅读 · 0 评论 -
PAT Basic1050
ps:目前我对于乙级大多数题有思路,也能写出代码,但是总有一两个测试点过不了,我觉得一是写代码素养不够,比如类型转换导致超范围答案错误,二是超时,三是读题不认真,没有注意到边界条件等!1050 螺旋矩阵(25)(25 分)本题要求将给定的N个正整数按非递增的顺序,填入“螺旋矩阵”。所谓“螺旋矩阵”,是指从左上角第1个格子开始,按顺时针螺旋方向填充。要求矩阵的规模为m行n列,满足条件:m*n等于N;...原创 2018-07-14 18:53:04 · 250 阅读 · 0 评论 -
PAT Basic1051(输出问题--看)
1051 复数乘法 (15)(15 分)复数可以写成(A +Bi)的常规形式,其中A是实部,B是虚部,i是虚数单位,满足i^2^ =-1;也可以写成极坐标下的指数形式(R*e^(Pi)^),其中R是复数模,P是辐角,i是虚数单位,其等价于三角形式R(cos(P) + isin(P))。现给定两个复数的R和P,要求输出两数乘积的常规形式。输入格式:输入在一行中依次给出两个复数的R1, P1, R2,...原创 2018-07-14 22:36:46 · 94 阅读 · 0 评论 -
PAT Basic1080
ps:这道题用map将学生信息存在exam中,然后放入vector中排序输出。由题意:这些信息可以过滤掉1.编程分小于200的2.未参加期末考试(更严格可以算出期末考试小于多少的可以不存)3.总评小于60的1080 MOOC期终成绩(25 分)提问对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合...原创 2018-07-28 22:27:48 · 186 阅读 · 0 评论 -
PAT Basic1078
1079 延迟的回文数(20 分)提问给定一个 k+1 位的正整数 N,写成 ak⋯a1a0 的形式,其中对所有 i 有 0≤ai<10 且 ak>0。N 被称为一个回文数,当且仅当对所有 i 有 ai=ak−i。零也被定义为一个回文数。非回文数也可以通过一系列操作变出回文数。首先将该数字逆转,再将逆转数与该数相加,如果和还不是一个回文...原创 2018-07-28 23:52:29 · 204 阅读 · 0 评论 -
PAT Basic 1062
ps:做这道题明白了很多,这道题比较简单,可是我也做的很费劲,从一开始写出代码就过了一个点,后边再看一遍题目明白了k1,k2大小不确定,然后k1,k2两个端点的处理(k1为小数或者k2为小数,记住不包括k1,k2端点),然后再看代码发现自己swap函数中temp写成了int类型,最后通过了4个点,最后一个怎么也过不去,才明白自己判断是不是最简出了问题!不过收获也有,昨晚一道题我能够记住上一道题错误...原创 2018-07-15 10:58:30 · 129 阅读 · 0 评论 -
PAT Basic1078
总结:压缩:我用一个pair<char,int>存储相同字符和重复次数,放入vector<pair>中输出解压缩:只有以下几种情况1.当前字符为数字,下一个字符为字母(或者空格)如5T表示5个T “6 5T”表示6个空格然后5个T2.当前为数字,下一个为数字,下一个为数字(或者空格)11T表示11个T(还有三个数字,四个数字等等,但题目测试数据灭有)3....原创 2018-07-29 10:52:22 · 130 阅读 · 0 评论 -
PAT Basic1054
1054 求平均值 (20)(20 分)本题的基本要求非常简单:给定N个实数,计算它们的平均值。但复杂的是有些输入数据可能是非法的。一个“合法”的输入是[-1000,1000]区间内的实数,并且最多精确到小数点后2位。当你计算平均值的时候,不能把那些非法的数据算在内。输入格式:输入第一行给出正整数N(<=100)。随后一行给出N个实数,数字间以一个空格分隔。输出格式...原创 2018-07-15 17:11:33 · 511 阅读 · 0 评论 -
PAT Basic1055(近几天ac不了,其实只有一步之遥)
近几天ac不了,都是细节方面出了问题,这次因为对自定义排序理解不到位造成的。bool cmp(const node&a, const node&b){ bool ct=false; if (a.len>b.len)ct = true; else if (a.len == b.len) { if (strcmp(b.name,a.n...原创 2018-07-15 20:43:04 · 158 阅读 · 0 评论 -
PAT Basic1040(关于循环注意)
字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过10^5^,只包含P、A、T三种字母。输出格式:在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对1000000007取余数的...原创 2018-07-11 16:32:31 · 114 阅读 · 0 评论 -
PAT Basic1039
1039 到底买不买(20)(20 分)小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如在图1中,第3串是小红想做的珠串;那么第1串...原创 2018-07-11 15:31:01 · 83 阅读 · 0 评论 -
PAT Basic1031
//ps:这道题让我明白了写程序一定要细致,有些时候思路是对的,但是用程序表达出来的时候就会出各种错误,而且有时候在不知道出了点小错的程序还能通过一些测试用例,让你没法检测出到底哪出错了,写程序的时候逻辑和头脑一定要清楚,牛客网居然能看到测试数据,这对于初学者简直就是福音啊!!!我要转战nowcoder!!!!#include<iostream>#include<string.h...原创 2018-07-04 16:28:33 · 120 阅读 · 0 评论 -
PAT Basic1010(题意不好理解)
1010 一元多项式求导 (25)(25 分)设计函数求一元多项式的导数。(注:x^n^(n为整数)的一阶导数为n*x^n-1^。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。输入...原创 2018-06-29 22:07:53 · 190 阅读 · 0 评论 -
PAT Basic1007(attetion)
1007 素数对猜想 (20)(20 分)让我们定义 d~n~ 为:d~n~ = p~n+1~ - p~n~,其中 p~i~ 是第i个素数。显然有 d~1~=1 且对于n&gt1有 d~n~ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N (< 10^5^),请计算不超过N的满足猜想的素数对的个数。输入格式:每个测试输入包含1个测试用例,给出正整数N...原创 2018-06-29 22:31:00 · 147 阅读 · 0 评论 -
PAT Basic1013
1013 数素数 (20)(20 分)令P~i~表示第i个素数。现任给两个正整数M <= N <=10^4^,请输出P~M~到P~N~的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从P~M~到P~N~的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 43...原创 2018-06-30 10:43:57 · 110 阅读 · 0 评论 -
1002
#include<iostream>using namespace std;int main(){ char x[10000]; int s[10000]; int y[10000]; int g = 0; int sum = 0; cin>>x; for (int i = 0; x[i] != '\0'; i++) { ...原创 2018-06-26 09:25:30 · 391 阅读 · 0 评论 -
PAT Basic1014
#include<iostream>#include<string>#include<string.h>using namespace std;int main(){ char s1[65] = "0"; char s2[65] = "0"; char s3[65] = "0"; char s4[65] = "0";原创 2018-06-30 23:55:49 · 110 阅读 · 0 评论 -
PAT Basic1015
总结:这道题开始的时候只通过了3个测试点,其他几个运行超时!说明有大数据存在我把cout和cin改成了scanf和printf后就通过了,一定要注意这个问题还有就是考场stl的应用,这道题主要运用了自定义排序规则,是道很好的练习题,复习的时候一定注意!!!!!!!!1015 德才论 (25)(25 分)宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人...原创 2018-07-01 22:49:53 · 134 阅读 · 0 评论 -
PAT Basic1019
ps:这道题坑的就是6174这个测试数据,你也要重新算输出!其他的就是测试数据有输入小于1000的数,还有对数据加0输出格式的问题!1019 数字黑洞 (20)(20 分)给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kapr...原创 2018-07-02 01:17:54 · 99 阅读 · 0 评论 -
PAT Basic1003
1003 我要通过!(20)(20 分)“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;\任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 ...原创 2018-06-27 23:57:04 · 107 阅读 · 0 评论 -
PAT Basic1027
这道题主要是输出格式的问题,每一行中两个*之间应该是没有空格的,然后注意1 *的情况就行#include<iostream>#include<cmath> using namespace std;int main(){ int m=0; int j=0; char s; int n=1,x=0; cin>>m>>s; while(2*po...原创 2018-07-03 18:09:52 · 110 阅读 · 0 评论 -
PAT Basic1028
tips:这道题当没有合理数据的时候输出0.。。。pat隐藏的坑#include<iostream>#include<string.h>using namespace std;int main(){ int N = 0; char s[200]; char name[100]; char min[100]; char max[100]; ...原创 2018-07-03 22:06:58 · 124 阅读 · 0 评论 -
PAT Basic1029
#include<iostream>#include<string.h>using namespace std;int main(){ char s1[100]; char s2[100]; int a[1000]; memset(s1, 0, sizeof(s1)); memset(s1, 0, sizeof(s1)); memset(...原创 2018-07-03 22:51:29 · 109 阅读 · 0 评论 -
PAT Basic1035(恶心到我了!!!)
1035 插入与归并(25)(25 分)根据维基百科的定义:插入排序是迭代算法,逐一获得输入数据,逐步产生有序的输出序列。每步迭代中,算法从输入序列中取出一元素,将之插入有序序列中正确的位置。如此迭代直到全部元素有序。归并排序进行如下迭代操作:首先将原始序列看成N个只包含1个元素的有序子序列,然后每次迭代归并两个相邻的有序子序列,直到最后只剩下1个有序的序列。现给定原始序...原创 2018-07-10 21:09:16 · 330 阅读 · 0 评论 -
PAT Basic1008
1008 数组元素循环右移问题 (20)(20 分)一个数组A中存有N(N&gt0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A~0~ A~1~……A~N-1~)变换为(A~N-M~ …… A~N-1~ A~0~ A~1~……A~N-M-1~)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设...原创 2018-06-28 17:55:36 · 187 阅读 · 0 评论 -
PAT Basic1012
#include<iostream>#include<cmath>using namespace std;int main(){ int n=0; int m=0; int count=0; int count3=0; int s[1000]; int a=0,b=0,c=0,e=0; float d=0; cin&g...原创 2018-06-28 20:57:50 · 102 阅读 · 0 评论 -
PAT Basic1005
#include<iostream>#include<set>#include<algorithm>using namespace std;int h[10000];int g = 0;int flag = 0;struct rule{ bool operator()(const int&a, const int&b){ re...原创 2018-06-29 08:00:47 · 123 阅读 · 0 评论 -
PAT Basic1009
1009 说反话 (20)(20 分)给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例:Hello World H...原创 2018-06-29 16:36:04 · 92 阅读 · 0 评论