\quad博主正在准备PAT考试中,欲将PAT155道甲级考试题分门别类罗列出来,这样刷能让自己对每种类型的题有一个综合的认识。这篇博客会持续更新,力求每道题思路尽可能清楚简洁,欢迎大家加我QQ:1613511883一起探讨。

一、模拟题

1、字符串处理(11题)

\quad字符串处理在PAT中占有较高比重,几乎每年都会考,难度不高,一般在第1题或者第2题,但需要考虑到各种情况,有些题想拿满分有一定难度,需要很细致。

编号 标题 题解 难度等级 备注
1001 A+B Format (20 分) C++题解 1
1005 Spell It Right (20 分) C++题解 1
1022 Digital Library (30 分) C++题解 3 字符串+map
1035 Password (20 分) C++题解 1
1061 Dating (20 分) C++题解 2
1060 Are They Equal (25 分) C++题解 3 科学计数法
1071 Speech Patterns (25 分) C++题解 1 词频统计
1073 Scientific Notation (20 分) C++题解 2 科学计数法
1077 Kuchiguse (20 分) C++题解 1
1082 1082 Read Number in Chinese (25 分) C++题解 3
1108 Finding Average (20 分) C++题解 2 字符串转数字
1140 Look-and-say Sequence (20 分) C++题解 1

2、模拟(26题)

编号 标题 题解 难度等级 备注
1002 A+B for Polynomials (25 分) C++题解 1 多项式加法
1008 Elevator (20 分) C++题解 1 模拟电梯运行
1009 Product of Polynomials (25 分) C++题解 1 多项式乘法
1014 Waiting in Line (30 分) C++题解 3 队列模拟,全网最简单写法
1016 Phone Bills (25 分) C++题解 3 电话账单
1017 Queueing at Bank (25 分) C++题解 3 模拟银行排队
1026 Table Tennis (30) C++题解 4
1042 Shuffling Machine (20 分) C++题解 1 数组模拟
1046 Shortest Distance (20) C++题解 1
1047 Student List for Course (25) C++题解 1
1054 The Dominant Color (20) C++题解 1
1056 Mice and Rice (25) C++题解 1
1063 Set Similarity (25) C++题解 1
1065 A+B and C (64bit) (20) C++题解 1
1095 Cars on Campus (30) C++题解 1
1105 Spiral Matrix (25) C++题解 1
1109 Group Photo (25) C++题解 1
1117 Eddington Number(25) C++题解 1
1120 Friend Numbers (20) C++题解 1
1124 Raffle for Weibo Followers (20) C++题解 1
1128 N Queens Puzzle (20) C++题解 1
1128 Recommendation System(25) C++题解 1
1139 First Contact (30) C++题解 1
1144 The Missing Number (20) C++题解 1
1148 Werewolf - Simple Version (20) C++题解 1
1149 Dangerous Goods Packaging(25) C++题解 1
1154 Vertex Coloring (25) C++题解 1

3、进制转换(4题)

\quad进制转换作为基本操作,会在pat中有所体现,一般以简单题为主,或者是作为其他类型题的一小部分,知道怎么把十进制数转化成任意进制数和把任意进制数转化为十进制数即可。
\quad将p进制数x转化为10进制数

int to_dec(int x, int p)
{int res = 0, product = 1;  // product在循环中会不断乘p,得到1,p,p^2,p^3...while(x){res += (x%10)*product;x /= 10;product *= p;}return res;
}

\quad将10进制数x转化为p进制数

string dec_to(int x, int p)
{string res = "";do{int t = x%p;res += (t+'0');x /= p;}while(x);reverse(res.begin(), res.end());return res;
}
编号 标题 题解 难度等级 备注
1019 General Palindromic Number (20) C++题解 1
1027 Colors in Mars (20) C++题解 1
1058 A+B in Hogwarts (20) C++题解 1
1100 Mars Numbers (20) C++题解 2

4、图形输出(1题)

\quad这种题不常考,且较为简单,不用花额外精力去攻克。

编号 标题 题解 难度等级 备注
1031 Hello World for U (20) C++题解 1

5、查找元素(3题)

\quad查找元素的题均为简单题,按要求查找最大或者最小即可。

编号 标题 题解 难度等级 备注
1006 Sign In and Sign Out (25 分) C++题解 1
1011 World Cup Betting (20) C++题解 1
1036 Boys vs Girls (25) C++题解 1

二、排序(14题)

编号 标题 题解 难度等级 备注
1012 The Best Rank (25) C++题解 3 成绩分科目排序
1025 PAT Ranking (25 ) C++题解 2 成绩分考场排序
1029 Median (25) C++题解 3 优先队列解决内存溢出
1055 The World’s Richest (25) C++题解 1
1062 Talent and Virtue (25) C++题解 1
1075 PAT Judge (25) C++题解 1
1080 Graduate Admission (30) C++题解 1
1083 List Grades (25) C++题解 1
1089 Insert or Merge (25) C++题解 2 插入排序和归并排序
1098 Insertion or Heap Sort (25) C++题解 2 插入排序和堆排序
1101 Quick Sort (25) C++题解 2 快速排序的另一种思考
1137 Final Grading (25) C++题解 1
1141 PAT Ranking of Institutions (25) C++题解 1
1153 Decode Registration Card of PAT (25) C++题解 1

三、散列(哈希)(11题)

编号 标题 题解 难度等级 备注
1039 Course List for Student (25) C++题解 1
1041 Be Unique (20) C++题解 1
1050 String Subtraction (20) C++题解 1
1078 Hashing (25) C++题解 2
1084 Broken Keyboard (20) C++题解 1
1092 To Buy or Not to Buy (20) C++题解 1
1112 Stucked Keyboard (20) C++题解 2
1116 Let’s C (20) C++题解 1
1121 Damn Single (25) C++题解 1
1134 Vertex Cover (25) C++题解 1
1145 Hashing - Average Search Time (25) C++题解 3

四、贪心(5题)

编号 标题 题解 难度等级 备注
1033 To Fill or Not to Fill(30) C++题解 1
1037 Magic Coupon (25) C++题解 1
1067 Sort with Swap(0,*) (25) C++题解 1
1070 Mooncake (25) C++题解 1
1125 Chain the Ropes (25) C++题解 1

五、二分(4题)

编号 标题 题解 难度等级 备注
1010 Radix (25) C++题解 1
1044 Shopping in Mars (25) C++题解 1
1048 Find Coins (25) C++题解 1
1085 Perfect Sequence (25) C++题解 1

六、数论(12题)

1、最大公约数(gcd)和最小公倍数(lcm)

2、素数

编号 标题 题解 难度等级 备注
1015 Reversible Primes (20) C++题解 1
1152 Google Recruitment C++题解 1

3、分数运算

编号 标题 题解 难度等级 备注
1081 Rational Sum (20) C++题解 1
1088 Rational Arithmetic (20) C++题解 1

4、质因子分解

编号 标题 题解 难度等级 备注
1059 Prime Factors (25) C++题解 1

5、大整数运算

编号 标题 题解 难度等级 备注
1023 Have Fun with Numbers (20) C++题解 1
1024 Palindromic Number (25) C++题解 1
1136 A Delayed Palindrome (20) C++题解 1

6、其他

编号 标题 题解 难度等级 备注
1069 The Black Hole of Numbers (20) C++题解 1
1093 Count PAT’s (25) C++题解 1
1104 Sum of Number Segments (20) C++题解 1
1113 Integer Set Partition (25) C++题解 1

七、栈和队列(1题)

编号 标题 题解 难度等级 备注
1051 Pop Sequence (25) C++题解 1

八、链表(6题)

编号 标题 题解 难度等级 备注
1028 List Sorting (25) C++题解 1
1032 Sharing (25) C++题解 1
1052 Linked List Sorting (25) C++题解 1
1074 Reversing Linked List (25) C++题解 1
1097 Deduplication on a Linked List (25) C++题解 1
1133 Splitting A Linked List (25) C++题解 1

九、搜索(DFS和BFS)(2题)

编号 标题 题解 难度等级 备注
1091 Acute Stroke (30) C++题解 1
1103 Integer Factorization (30) C++题解 1
1131 Subway Map(30) C++题解 1

十、树(23题)

1、树的遍历

编号 标题 题解 难度等级 备注
1004 Counting Leaves (30) C++题解 2 树的层次遍历
1053 Path of Equal Weight (30) C++题解 3 树的路径问题
1079 Total Sales of Supply Chain (25) C++题解 2 树的遍历
1090 Highest Price in Supply Chain (25) C++题解 1
1094 The Largest Generation (25) C++题解 2 树的遍历
1102 Invert a Binary Tree (25) C++题解 2 静态建树和遍历
1106 Lowest Price in Supply Chain (25) C++题解 1
1110 Complete Binary Tree (25) C++题解 2 判断是否是完全二叉树
1115 Counting Nodes in a BST (30) C++题解 2 统计每一层节点个数
1130 Infix Expression(25) C++题解 2 树的中序遍历和中缀表达式
1138 Postorder Traversal (25) C++题解 1
1143 Lowest Common Ancestor (30) C++题解 1
1151 LCA in a Binary Tree(30) C++题解 1

2、树的重建

编号 标题 题解 难度等级 备注
1020 Tree Traversals (25) C++题解 1
1043 Is It a Binary Search Tree (25) C++题解 1
1064 Complete Binary Search Tree(30) C++题解 1
1086 Tree Traversals Again (25) C++题解 1
1099 Build A Binary Search Tree (30) C++题解 1
1119 Pre- and Post-order Traversals (30) C++题解 1
1127 ZigZagging on a Tree (30) C++题解 1

3、平衡二叉树

编号 标题 题解 难度等级 备注
1066 Root of AVL Tree (25) C++题解 1
1123 Is It a Complete AVL Tree (30) C++题解 1
1135 Is It A Red-Black Tree(30) C++题解 1

十一、图(17题)

1、图遍历和连通分量

编号 标题 题解 难度等级 备注
1013 Battle Over Cities (25) C++题解 2 图连通分量计数
1021 Deepest Root (25) C++题解 3 树的最大深度
1034 Head of a Gang (30) C++题解 4 图遍历
1076 Forwards on Weibo (30) C++题解 2 图的BFS

2、最短路径

\quad图的最短路径是常考题,在PAT里面属于最后一二题位置,难度较高。我对两种常见的最短路算法

  • 优先队列优化的Dijistra,无负权的情况下使用,O(n+m)log(n)O(n+m)log(n)O(n+m)log(n)
  • SPFA,有负权情况下使用,O(kE)O(kE)O(kE),k一般小于2,但可通过构造数据卡成O(VE)O(VE)O(VE)

\quadPAT对时间复杂度要求很低,无需优化即可通过,甚至Floyd都能过,所以题解中我统一使用spfa,原因是spfa跟图的BFS写法差不多,写起来简单。
\quad我在博客中对这两种最短路算法进行了解释并给出了模板,欢迎点击查看。

编号 标题 题解 难度等级 备注
1003 Emergency (25) C++题解 3 最短路径+其他变量的更新(第二标尺)
1018 Public Bike Management (30) C++题解 4 最短路径+DFS
1030 Travel Plan (30) C++题解 3 最短路径+其他变量的更新(第二标尺)
1072 Gas Station (30) C++题解 3 多个点的最短路
1087 All Roads Lead to Rome (30) C++题解 4 最短路径+三个标尺层层更新
1111 Online Map (30) C++题解 3 最短路径+两个尺度

3、新定义类型题

编号 标题 题解 难度等级 备注
1122 Hamiltonian Cycle (25) C++题解 1
1126 Eulerian Path (25) C++题解 1
1142 Maximal Clique (25) C++题解 1
1150 Travelling Salesman Problem (25) C++题解 1

4、拓扑排序

编号 标题 题解 难度等级 备注
1146 Topological Order (25) C++题解 1

5、最小生成树

十二、动态规划(4题)

编号 标题 题解 难度等级 备注
1007 Maximum Subsequence Sum (25) C++题解 2 最大子序列和
1045 Favorite Color Stripe (30) C++题解 1
1068 Find More Coins(30) C++题解 1
1142 Maximal Clique (25) C++题解 1

十三、堆(2题)

编号 标题 题解 难度等级 备注
1047 Heaps (30) C++题解 1
1055 Heap Paths (30) C++题解 1

十四、并查集(3题)

编号 标题 题解 难度等级 备注
1107 Social Clusters (30) C++题解 1
1114 Family Property (25) C++题解 1
1118 Birds in Forest (25) C++题解 1

十五、树状数组(1题)

编号 标题 题解 难度等级 备注
1057 Stack (30) C++题解 1

分门别类刷PAT甲级相关推荐

  1. 刷PAT甲级的各题思路、细节以及遇到的问题记录

    1001 A+B Format (20分) 因为一定会用到字符串,而string非常好用,但是用的时候一定要注意不能越界访问,否则会在运行时出现abort() has been called. 100 ...

  2. C++常用函数(刷PAT甲级总结)

    判断素数 HDU1059 求一个数字的质因子之积时,只需要考虑小于等于根号n的质因子,但是最后剩下的可能还是个质数,所以要格外考虑下 bool isPrime(int x){if(x<=1)re ...

  3. 【PAT】PAT甲级题库所有题解(持续更新中...)

    题解: 本文为导航页,一些希望刷PAT甲级的玩家可以来看看,我会持续更新所有题目的题解(取决于我做到哪儿了(doge)) 题号按照PAT官网给出的标注 题目: 链接 标签 1001 A+B Forma ...

  4. PAT甲级刷题记录-(AcWing)-(Day06树 8题)

    PAT甲级刷题记录-(AcWing)-(Day06树 8题) 课程来源AcWing 其中AcWing中的题目为翻译好的中文题目 今日刷题列表 1110 Complete Binary Tree 111 ...

  5. 2020年9月PAT甲级满分必备刷题技巧

    2020年7月的考试结束了,除了本次的考题更新,短期内不会更新. [7月题目的特点:首次线上考试,没出链表.树相关的模板题,第2到4题背景新颖,大大降低了抄袭历年代码的可能性,可以看作是线上考试的新趋 ...

  6. 小峰峰的pat甲级刷题记录1020

    小峰峰的pat甲级刷题记录1020 方法一:通过后序和中序序列构建树,再层序输出 #include<iostream> #include<vector> using names ...

  7. PAT甲级 1014 刷题记录

    文章目录 一.答案 (一)推荐答案 (二)个人解答 二.坑点 三.相关知识 (一)vector 与queue 两种结构的使用方法 (二)其他 一.答案 (一)推荐答案 链接:PAT甲级1014 测试点 ...

  8. PAT学习资料汇总(PAT甲级、PAT顶级、PAT考试经验)

    二.PAT甲级 PAT甲级真题目录(按题型整理) PAT甲级真题目录(按题型整理)_love music.的博客-CSDN博客_pat甲级真题 PAT甲[所有题目+解析+代码示例+总结]附带所有历年整 ...

  9. 2021.9.11周六PAT甲级考试复盘与总结

    周六PAT甲级考试复盘与总结 先说结论:仍未步入"高手"行列:现在的学习节奏与方法是对的,有十万分的必要坚持下去. 题目 知识点 分数 T1 前缀和.二分 11 / 20 T2 排 ...

  10. 2021年春季PAT甲级考试

    作为一个绩点不高.牌子不硬的退役ACMer,去年冬天在nvpy的鼓励下,决定先试试PAT为考研做准备,于是认认真真把所有20分的题目过了一遍.放寒假以后,就开始练习所有25分的题目,并且每道题做完都总 ...

最新文章

  1. Sublime Text 3 个人使用总结
  2. Android读写assets、raw、sdard和工程文件的方法
  3. http和https的区别和联系
  4. 机房系统(二)——【数据设定 注册 】
  5. JDBC 学习笔记(一)—— JDBC 基础
  6. mysql未找到bcrypt_使用mysql和bcryptjs时出现意外的标识符语法错误
  7. ARM Cortex-M0(6)--- 存储器系统
  8. mesh gradient的求法
  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_02 递归_5_综合案例_文件搜索...
  10. xftp连接不上虚拟机linux,XFTP如何连接LINUX虚拟机
  11. html自定义字体,css怎么自定义字体?
  12. 企业搭建网站主要流程以及六个基本步骤
  13. mysql连接显示“message from server :“Host ‘XXXX‘ is not allowed to connect to this MySQL server“”
  14. 免费的顶级域名要在哪申请?
  15. 从头再学java系列之char和Character的区别及Character的源码分析
  16. Ubuntu Qt项目编译提示 cannot find -lGL
  17. 网易2011笔试题详解
  18. 高级安全Windows防火墙管理单元无法加载。请重新启动正在管理的计算机上的Windows防火墙服务,报错代码:0x6D9
  19. MFC学习总结 (67个技巧)
  20. 重学Android基础系列篇(五):Android虚拟机指令

热门文章

  1. python 高德/百度/腾讯/谷歌API 与WGS84坐标互转(BD09/GCJ02/WGS84)
  2. 内网使用 IPV6 之Teredo篇
  3. 中国黑客生存特写,互联网金钱帝国里的英雄和盗匪
  4. Syzkaller最后一步运行./bin/syz-manager 无法启动虚拟机 failed to create instance: failed to read from qemu: EOF
  5. 详解MPO/MTP主干光纤跳线规格参数、MPO连接说明、MPO极性分类
  6. 现在可以把小程序交给第三方开发或管理了
  7. MySQL2014版查询操作的入门级教学
  8. windows10正式版官方原版镜像iso下载地址
  9. 2908. Annoying painting tool
  10. Vivado IP核之浮点数加减法 Floating-point