
PAT 乙级
资深小透明
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
PAT 乙级 1017 A除以B (20 分)
题目:PAT 乙级 1017 A除以B (20 分)经验总结:要特殊考虑当被除数长度为1时的情况。记:注意运算符的优先顺序,得先括号,否则有个测试点错误。。。C++代码:#include<bits/stdc++.h>using namespace std;int main() { string a; int b; cin>>a>>b;...原创 2019-08-26 22:09:32 · 225 阅读 · 0 评论 -
PAT 乙级 1043 输出PATest (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805280074743808经验总结:一个字符一个字符的输入并筛选PATest里面的字符,用一个数组存储每个字符出现的次数。记:while((c=getchar())!=’\n’) 循环输入字符,以回车结束。C代码#include <iostr...原创 2019-08-12 20:35:34 · 164 阅读 · 0 评论 -
PAT 乙级 1042 字符统计 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805280817135616经验总结:当字母出现次数相同时,按字母序最小的输出,即a、d字母次数相同,那么输出a。根据此特性,可使用map,map的key会自动排序。然后遍历排好序的map查找即可。不可在遍历字符串时就判断次数大小,因为此时并没有排好序,会导...原创 2019-08-12 19:40:12 · 114 阅读 · 0 评论 -
PAT 乙级 1049 数列的片段和 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805275792359424经验总结:这是一个找规律的题目,刚开始一直不知道后两个测试点为什么错误,经搜索相关问题后了解到是后两个测试点的精度问题,要么运算的时候前面int型强制转换下double,要么把double类型的变量放在最前面。或者全部变量都用do...原创 2019-08-16 14:58:22 · 192 阅读 · 0 评论 -
PAT 乙级 1062 最简分数 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805268334886912经验总结:此题需要用到公约数方法,判断最大公约数是否==1即可。题目并未说明倒地那个分数大那个小,所以需要判断下,不然有个测试点会错记:最大公约数方法:int gcd(int a,int b){ //最大公约数方法 re...原创 2019-08-21 15:58:11 · 114 阅读 · 0 评论 -
PAT 乙级 1041 考试座位号 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805281567916032经验总结:定义结构体struct stu,试机座位可代表下标。记:题目中所给的某些数据可当做数组的下标使用,记住这一点,很多题可以轻松解决。C++代码:#include <iostream>#include ...原创 2019-08-12 18:36:50 · 141 阅读 · 0 评论 -
PAT 乙级 1007 素数对猜想 (20 分)
题目:PAT 乙级 1007 素数对猜想 (20 分)经验总结:此题可以直接判断i和i+2两个数是否都是素数来解决,但是循环次数需要减二(或者判断条件为i-2和i是否都是素数,这样循环次数就不用减2了)。刚开始使用此方法解题的时候只对了几个测试点,一直不知道是哪里错了,然后看了下其他AC的代码,也看不出我到底哪里错误了。最后我把AC代码和我的代码通过打表的方式对比查看对于同一个N,统计的...原创 2019-08-25 23:21:51 · 138 阅读 · 0 评论 -
PAT 乙级 1093 字符串A+B (20 分)
题目:PAT 乙级 1093 字符串A+B (20 分)经验总结:依题意顺序输出每个字符,且只能输出一次。可以用字符所对应的ASCII码值来标记这个字符是否输出过,即开一个标记数组。C++代码:#include<bits/stdc++.h>using namespace std;int main() { char c; int index[130]= {0};...原创 2019-08-25 21:00:23 · 121 阅读 · 0 评论 -
PAT 乙级 1092 最好吃的月饼 (20 分)
题目:PAT 乙级 1092 最好吃的月饼 (20 分)经验总结:开一个很大的数组用于标记总销量出现的次数。C++代码:#include<bits/stdc++.h>using namespace std;int cnt[100000000];int main() { int n,m,max = 0; cin>>n>>m; int s...原创 2019-08-25 20:43:21 · 278 阅读 · 0 评论 -
PAT 乙级 1060 爱丁顿数 (25 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805269312159744经验总结:我想了两种解法,但本质都一样,都是先排序后,再逐一判断是否满足条件并对E做相应的调整。C++代码:/* 方法一:从小到大排序后,先定义E=N,然后逐一判断数组中的数是否满足条件, 若满足,则break 若不满...原创 2019-08-21 14:10:39 · 141 阅读 · 0 评论 -
PAT 乙级 1088 三人行 (20 分)
题目:PAT 乙级 1088 三人行 (20 分)经验总结:由于丙可能有小数,所以得用double。C++代码:#include<bits/stdc++.h>using namespace std;int m,x,y;void pk(double a) { if(m>a) cout<<" Gai"; else if(m == a) cout&...原创 2019-08-25 19:09:39 · 147 阅读 · 0 评论 -
PAT 乙级 1040 有几个PAT (25 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616经验总结:先找出所有T,然后遍历字符串,每遇到A就将前面P的数量乘以后面所有T。记:注意取模要正确。什么地方可能超过模值,那个地方就得取下模。实在是不清楚,那就全取模。。。C++代码:#include <iostre...原创 2019-08-12 13:54:37 · 115 阅读 · 0 评论 -
PAT 乙级 1039 到底买不买 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805283241443328经验总结:在解决此题过程中,犯了个输出格式错误的低级错误,导致测试点全错。。。记:注意输出格式。记:scanf、printf不支持string类的直接操作,改用cin、cout方式。C++代码:#include <...原创 2019-08-12 13:07:18 · 149 阅读 · 0 评论 -
PAT 乙级 1048 数字加密 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805276438282240经验总结:注意A和B的中较短的字符串需要在其之前补0,补到两字符串长度相等。可以真的补0,也可以假装补0,例如如下代码为假装补0.记:reverse_iterator 中的rbegin 到rend 是++而不是–。C++代码...原创 2019-08-15 22:35:35 · 135 阅读 · 0 评论 -
PAT 乙级 1064 朋友数 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805267416334336经验总结:用数组做标记,由于给的数据最大为9999,各数字之和不超过40,所以定义N为40(强迫症取整)初始化一个长度为N,值全为0的数组。输入的同时判断这个数各数字之和为下标的数组中值是否为0,若为0,代表这个“朋友证号”为...原创 2019-08-21 16:50:50 · 163 阅读 · 0 评论 -
PAT 乙级 1046 划拳 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805277847568384经验总结:注意不要漏掉同时赢和同时输的情况。记:switch中case不能是变量,只能是常量。C++代码:#include <iostream>#include <cstdio>using na...原创 2019-08-12 21:09:48 · 121 阅读 · 0 评论 -
PAT 乙级 1015 德才论 (25 分)
题目:PAT 乙级 1015 德才论 (25 分)经验总结:1、使用结构体存储考生信息。2、使用vector数组存储四类考生的信息。3、使用sort和自定义排序方法排序。刚开始提交时发现耗时特别大,达到了300ms,差点就超时了。然后发现输入的数据量过大了(105),然后用的又是cin和cout方式。改为scanf和printf方式,耗时会少很多。C++代码:#include...原创 2019-08-26 21:07:26 · 228 阅读 · 0 评论 -
PAT 乙级 1090 危险品装箱 (25 分)
题目:PAT 乙级 1090 危险品装箱 (25 分)经验总结:使用multimap来存放不相容的物品集合。先用一个数组来存放一行的物品清单,和一个数组标记物品的存在。然后遍历该物品清单,查找一个物品在multimap中的不相容物品是否存在此行中。。记:multimap中遍历一个键值的所有值:使用equal_range(key),返回一个迭代器的pair对象,first成员,se...原创 2019-08-26 16:34:58 · 210 阅读 · 0 评论 -
PAT 乙级 1072 开学寄语 (20 分)
题目:PAT 乙级 1072 开学寄语 (20 分)经验总结:此题可用一个数组来标记需要查缴的物品。注意编号可能为0001之类的,所以输出的时候要注意补0。否则有个测试点会错误。记:用setw()设置宽度,用setfill()来设置填充。C++代码:#include<bits/stdc++.h>using namespace std;int item_num[1...原创 2019-08-23 14:26:12 · 196 阅读 · 0 评论 -
PAT 乙级 1069 微博转发抽奖 (20 分)
题目:PAT 乙级 1069 微博转发抽奖 (20 分)经验总结:可以建立一个set,用于存放中奖用户。若set中有此用户,代表此用户已中奖,奖品顺延。C++代码:#include<bits/stdc++.h>using namespace std;int main() { int m,n,s; cin>>m>>n>>s; ...原创 2019-08-23 13:33:58 · 317 阅读 · 0 评论 -
PAT 乙级 1068 万绿丛中一点红 (20 分)
题目:PAT 乙级 1068 万绿丛中一点红 (20 分)经验总结:注意题目说明的是独一无二的像素点,那么就是说,最终答案的这个像素点必须唯一,整个分辨率画中不能有重复值。可以开一个数组标记值是否唯一。对于分辨率边框上的像素点可以在数组边缘加上一个框,这个框上的像素点为0来加以判断。C++代码:#include<bits/stdc++.h>using namespa...原创 2019-08-23 13:11:25 · 202 阅读 · 0 评论 -
PAT 乙级 1013 数素数 (20 分)
题目:PAT 乙级 1013 数素数 (20 分)经验总结:C++代码:#include<bits/stdc++.h>using namespace std;bool isPrime(int n) { //判断一个数是否是素数 if(n<=1) return false; if(n==2 || n==3) return true; if(n%6!=1 &a...原创 2019-08-23 15:02:01 · 108 阅读 · 0 评论 -
PAT 乙级 1053 住房空置率 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805273284165632经验总结:这道题涉及double类型的比较,由于在之前看过double型的精度问题,不能直接比较,得有个特别小的数来做判断。所以就const double eps = 1e-6; 然后两double相减和eps作对比,结果发现输出...原创 2019-08-18 13:18:04 · 106 阅读 · 0 评论 -
PAT 乙级 1057 数零壹 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805270914383872经验总结:让数字与1进行&操作,判断结果为0还是1,分别计数即可。记:右移操作符操作完了得把结果赋值给变量,不能单独使用。右移1位相当于除以2,左移1位相当于乘以2。移n位,相当于乘以或除以2n记:sum = sum&...原创 2019-08-17 21:44:06 · 150 阅读 · 0 评论 -
PAT 乙级 1052 卖个萌 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805273883951104经验总结:除了要判断题目所给数据是否超出范围,还要判断是否<=0。。。否则会段错误。。。记:小心转义字符。C++代码:#include <iostream>#include <cstdio>...原创 2019-08-17 19:05:24 · 144 阅读 · 0 评论 -
PAT 乙级 1056 组合数的和 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805271455449088经验总结:while中的输入顺序无关紧要,反正就是数字相加之和。记:while中的n–,由于在while中判断了,之后就减一了,所以while里面的n是从n-1开始到0的C++代码:#include <iostrea...原创 2019-08-13 12:08:56 · 101 阅读 · 0 评论 -
PAT 乙级 1094 谷歌的招聘 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/1071785997033074688经验总结:记:s.size() 返回的是一个size_type类型,这个类型是一个无符号类型,所以判断的时候不应该用size_type类型去减某个数,而是应该用加某个数来与size_type类型对比,否则可能会出现相减溢出而错误...原创 2019-08-21 19:27:33 · 159 阅读 · 0 评论 -
PAT 乙级 1067 试密码 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805266007048192经验总结:此题需要注意两点:1、需要使用 getline(cin,s)的方式获取用户输入的密码,因为用户可能输入空格之类的。2、题目说明“当错误尝试达到 N 次时,再输出一行 Account locked,并结束程序。” 注意...原创 2019-08-21 18:50:17 · 149 阅读 · 0 评论 -
PAT 乙级 1065 单身狗 (25 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805266942377984经验总结:可把此题假象成寻找还未到的伴侣的游戏。建立一个伴侣数组,输入伴侣对数时,互相赋值即可。C++代码:#include<bits/stdc++.h>#define N 100000using name...原创 2019-08-21 18:26:25 · 143 阅读 · 0 评论 -
PAT 乙级 1059 C语言竞赛 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805269828059136经验总结:使用数组下边来标记ID,数组的值即是排名。如果某ID领过奖品(即输出过),那么把其排名设为负数,下次再次查询排名是负数的ID时,输出Checked即可。注意,只在排名是正数且第一次查询时设为负数,所以要判断排名值是否还是...原创 2019-08-20 23:12:32 · 175 阅读 · 0 评论 -
PAT 乙级 1054 求平均值 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805272659214336经验总结:首先判断是否是负数,并做上标记。之后判断是否含有小数点,如果没有,代表一个整数,循环判断是否是合法整数。如果有小数点并且判断只有一个小数点,代表一个实数,循环判断是否是合法实数。之后用stod(string转double...原创 2019-08-18 23:21:50 · 168 阅读 · 0 评论 -
PAT 乙级 1091 N-自守数 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/1071785664454127616经验总结:以逐步取模的方式,判断两个数尾部一不一样。C++代码:#include <iostream>#include <cstdio>using namespace std;int main...原创 2019-08-13 20:58:10 · 162 阅读 · 0 评论 -
PAT 乙级 1086 就不告诉你 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/1038429065476579328经验总结:注意这里面不能输出前导零,即100*100,只能输出1。。。有两个测试点就卡在这,我估计会有许多人会卡在这种地方,无语的题目。。。C++代码:#include <iostream>#include ...原创 2019-08-13 20:10:22 · 172 阅读 · 0 评论 -
PAT 乙级 1081 检查密码 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805261217153024经验总结:注意里面有个测试点是包含空格的,所以要用getline的方式来获取字符串。记:在用getline时,需要注意前面是否有cin等输入,是否需要getchar一下。C++代码:#include <iostrea...原创 2019-08-13 19:28:01 · 160 阅读 · 0 评论 -
PAT 乙级 1076 Wifi密码 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805262622244864经验总结:看似简单的一个题目,我却在各种输入闪退中。。。最后发现是输入缓冲区的回车在作祟记:当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个...原创 2019-08-13 17:28:54 · 244 阅读 · 0 评论 -
PAT 乙级 1071 小赌怡情 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805264312549376经验总结:C++代码:#include <iostream>#include <cstdio>using namespace std;int main(){ int T,K,n1,b,t,n2...原创 2019-08-13 16:07:53 · 209 阅读 · 0 评论 -
PAT 乙级 1066 图像过滤 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805266514558976经验总结:C代码:#include <iostream>#include <cstdio>using namespace std;int main(){ int m,n,a,b,revalue...原创 2019-08-13 12:39:40 · 100 阅读 · 0 评论 -
PAT 乙级 1061 判断题 (15 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805268817231872经验总结:C++代码:#include <iostream>#include <cstdio>using namespace std;int main(){ int n,m; cin>...原创 2019-08-13 12:25:16 · 136 阅读 · 0 评论 -
PAT 乙级 1032 挖掘机技术哪家强 (20 分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805289432236032经验总结:用map存储并遍历查询记:map<int,int>中,直接查询未赋值的key,其对应的值为0#include <iostream>#include <map> using ...原创 2019-08-03 20:21:27 · 80 阅读 · 0 评论 -
PAT 乙级 1030 完美数列 (25 分)
给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105 )是输入的正整数的个数,p(≤109 )是给定的参数。第二行给出 N 个正整数,每个数不超过 109。输出格式:...原创 2019-08-03 18:51:35 · 120 阅读 · 0 评论