PAT甲级题分类汇编——序言
今天开个坑,分类整理PAT甲级题目(https://pintia.cn/problem-sets/994805342720868352/problems/type/7)中1051~1100部分。语言是modern C++。
为什么要整理呢,因为我2019年9月要考PAT甲级,虽然是第一次考,虽然只学了数据结构(https://mooc.study.163.com/course/1000033001?tid=2402970002#/info),但我要冲着高分(2019年9月8日更新:满分)去。
下面的表格简述了这50道题的大意,并进行了分类。
题号 | 标题 | 分数 | 大意 | 类型 |
1051 | Pop Sequence | 25 | 判断一个序列是否是pop序列 | 理论 |
1052 | Linked List Sorting | 25 | 链表排序 | 理论 |
1053 | Path of Equal Weight | 30 | 寻找树中一定权重的路径 | 树 |
1054 | The Dominant Color | 20 | 寻找出现最多的数 | 线性 |
1055 | The World's Richest | 25 | 限定范围排序结果 | 排序 |
1056 | Mice and Rice | 25 | 分组排序 | 排序 |
1057 | Stack | 30 | 一个有中位数功能的stack | 理论 |
1058 | A+B in Hogwarts | 20 | 特殊进制加法 | 计算 |
1059 | Prime Factors | 25 | 分解素因数 | 计算 |
1060 | Are They Equal | 25 | 一定精度下两数是否相等 | 计算 |
1061 | Dating | 20 | 寻找字符串中相同字符 | 线性 |
1062 | Talent and Virtue | 25 | 一定规则的排序 | 排序 |
1063 | Set Similarity | 25 | 集合相似度 | 集合 |
1064 | Complete Binary Search Tree | 30 | 完全二叉搜索树 | 树 |
1065 | A+B and C (64bit) | 20 | 大数加法与比较 | 计算 |
1066 | Root of AVL Tree | 25 | AVL树的根 | 树 |
1067 | Sort with Swap(0, i) | 25 | 通过与0号元素交换来排序 | 数学 |
1068 | Find More Coins | 30 | 子集和问题 | 算法 |
1069 | The Black Hole of Numbers | 20 | 黑洞数 | 计算 |
1070 | Mooncake | 25 | 背包问题 | 算法 |
1071 | Speech Patterns | 25 | 寻找出现最多的单词 | 线性 |
1072 | Gas Station | 30 | 最短距离最大,距离不超限 | 图 |
1073 | Scientific Notation | 20 | 科学计数法还原 | 计算 |
1074 | Reversing Linked List | 25 | 分段逆转链表 | 理论 |
1075 | PAT Judge | 25 | 复杂排序 | 排序 |
1076 | Forwards on Weibo | 30 | 一定层数的转发计数 | 图 |
1077 | Kuchiguse | 20 | 字符串共同后缀 | 线性 |
1078 | Hashing | 25 | 散列 | 散列 |
1079 | Total Sales of Supply Chain | 25 | 计算供应链总销售额 | 图 |
1080 | Graduate Admission | 30 | 志愿与录取 | 排序 |
1081 | Rational Sum | 20 | 有理数加法 | 计算 |
1082 | Read Number in Chinese | 25 | 中文读数 | 线性 |
1083 | List Grades | 25 | 限定范围排序结果 | 排序 |
1084 | Broken Keyboard | 20 | 比较两序列的差异 | 线性 |
1085 | Perfect Sequence | 25 | 符合约束的最大数列长度 | 集合 |
1086 | Tree Traversals Again | 25 | 中序遍历逆推 | 树 |
1087 | All Roads Lead to Rome | 30 | 复杂权重的最短路径问题 | 图 |
1088 | Rational Arithmetic | 20 | 有理数运算 | 计算 |
1089 | Insert or Merge | 25 | 判断插入排序或归并排序 | 理论 |
1090 | Highest Price in Supply Chain | 25 | 供应链最高价格 | 图 |
1091 | Acute Stroke | 30 | 超过阈值的空间体积之和 | 图 |
1092 | To Buy or Not to Buy | 20 | 判断子集 | 集合 |
1093 | Count PAT's | 25 | 数子串 | 数学 |
1094 | The Largest Generation | 25 | 树中元素最多的层 | 树 |
1095 | Cars on Campus | 30 | 模拟车辆进出 | 线性 |
1096 | Consecutive Factors | 20 | 最长连续因数 | 计算 |
1097 | Deduplication on a Linked List | 25 | 链表去重 | 理论 |
1098 | Insertion or Heap Sort | 25 | 判断插入排序或堆排序 | 理论 |
1099 | Build A Binary Search Tree | 30 | 建立二叉搜索树 | 树 |
1100 | Mars Numbers | 20 | 进制转换 | 计算 |
一共分了10类:
计算,一些纯数学计算的题,如进制转换;
线性,算法时间复杂度为常数或线性的题,如字符串类;
理论,以理论为背景的题,如链表操作、判断何种排序算法;
集合,以集合为主要工具的题;
树,以树为背景或主要工具的题;
图,需要建立图的题;
排序,纯排序题;
散列,涉及到散列的题;
数学,需要组合数学知识的题;
算法,用到算法设计课程中强调的算法的题,如贪心算法。
一些题目比较少的类别可能会并在一起讲。此外,我发现有些知识点在这50道题里面没有出现过(目前发现,我只粗略地看过一遍),可能会有一篇文章来补充。
每种类型的题目我会总结共性,简述可能的变形,最后挑一两道较难的放上代码。
最后说一下笔者的编码习惯。
喜欢C++11,几乎没有一道题我的代码是可以在C++98/03的标准下通过的。有时候我会忘记一个特性是不是来自C++14/17,但是我保证此系列中所有代码都可以在PAT OJ的g++编译器中通过编译并AC。
喜欢换行。左右大括号都独占一行,没有大括号的if、while、for等block会换行并缩进。
喜欢用 std::vector ,几乎不会根据输入上限建立数组。这是因为我是玩单片机的,没那么多内存可以浪费。 std::vector 在初始化时确定好大小或用 reserve(...) 分配好空间后效率还是可以的。
喜欢用 std::cin 和 std::cout 做输入输出,因为我没参加过计算机竞赛,没遇到过严格的时间限制。既然C++提供了类型安全的输入输出方式,那就用。
喜欢用C++中各种“++”的部分。按使用率从高到低排序应该是类、运算符重载、模板、继承。关于继承我以后会单独开一个专题系列。
我自认为我的代码是现代的、优雅的。如果你有办法让我的代码更优雅,欢迎评论。这种优雅确实会带来一定的代码膨胀与性能损失,如果你受不了,可以去参考别人的代码。
文章链接(已完结):
PAT甲级题分类汇编——序言的更多相关文章
- PAT甲级题分类汇编——杂项
本文为PAT甲级分类汇编系列文章. 集合.散列.数学.算法,这几类的题目都比较少,放到一起讲. 题号 标题 分数 大意 类型 1063 Set Similarity 25 集合相似度 集合 1067 ...
- PAT甲级题分类汇编——图
本文为PAT甲级分类汇编系列文章. 图,就是层序遍历和Dijkstra这一套,#include<queue> 是必须的. 题号 标题 分数 大意 时间 1072 Gas Station 3 ...
- PAT甲级题分类汇编——树
本文为PAT甲级分类汇编系列文章. AVL树好难!(其实还好啦~) 我本来想着今天应该做不完树了,没想到电脑里有一份讲义,PPT和源代码都有,就一遍复习一遍抄码了一遍,更没想到的是编译一遍通过,再没想 ...
- PAT甲级题分类汇编——理论
本文为PAT甲级分类汇编系列文章. 理论这一类,是让我觉得特别尴尬的题,纯粹是为了考数据结构而考数据结构.看那Author一栏清一色的某老师,就知道教数据结构的老师的思路就是和别人不一样. 题号 标题 ...
- PAT甲级题分类汇编——排序
本文为PAT甲级分类汇编系列文章. 排序题,就是以排序算法为主的题.纯排序,用 std::sort 就能解决的那种,20分都算不上,只能放在乙级,甲级的排序题要么是排序的规则复杂,要么是排完序还要做点 ...
- PAT甲级题分类汇编——计算
本文为PAT甲级分类汇编系列文章. 计算类,指以数学运算为主或为背景的题. 题号 标题 分数 大意 1058 A+B in Hogwarts 20 特殊进制加法 1059 Prime Factors ...
- PAT甲级题分类汇编——线性
本文为PAT甲级分类汇编系列文章. 线性类,指线性时间复杂度可以完成的题.在1051到1100中,有7道: 题号 标题 分数 大意 时间 1054 The Dominant Color 20 寻找出现 ...
- 【转载】【PAT】PAT甲级题型分类整理
最短路径 Emergency (25)-PAT甲级真题(Dijkstra算法) Public Bike Management (30)-PAT甲级真题(Dijkstra + DFS) Travel P ...
- PAT甲级题解分类byZlc
专题一 字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...
随机推荐
- Oracle Audit 功能的使用和说明
http://blog.itpub.net/9399028/viewspace-712457/审计(Audit) 用于监视用户所执行的数据库操作,审计记录可存在数据字典表(称为审计记录:存储在syst ...
- Oracle的存储的三大物理文件
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一. ...
- SC3聚类 | 拉普拉斯矩阵 | Laplacian matrix | 图论 | R代码
Laplacian和PCA貌似是同一种性质的方法,坐标系变换.只是拉普拉斯属于图论的范畴,术语更加专业了. 要看就把一篇文章看完整,再看其中有什么值得借鉴的,总结归纳理解后的东西才是属于你的. 问题: ...
- pt-table-checksum报错Skipping chunk【转】
用pt-table-checksum校验数据时有以下报错,是因为current chunk size大于默认chunk size limit=2.0 24636 rows -02T20:: Skipp ...
- [root@offical nginx]# nginx -t nginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1016001 in /usr/share/nginx/modules/mod-http-geoip.conf:1 nginx: con
[root@offical nginx]# nginx -tnginx: [emerg] module "/usr/lib64/nginx/modules/ngx_http_geoip_mo ...
- Windows上安装nodejs版本管理器nvm 安装成功之后重启终端失效
nvm 安装成功之后重启终端失效(command not found) 安装nvm之后node不可用,“node”不是内部或外部命令,也不是可运行的程序或批处理文件(ng) 安装nvm: 下载nvm压 ...
- 使用TFA启动需要知道哪些概念?
1. Boot stage BL1,BL2,BL31,BL32,BL33 2. Exception level EL3, EL1S, EL2 3. 那么放在表格里比较一下咯 Boot stage Ex ...
- Maltego更新到4.2.4.12374
Maltego更新到4.2.4.12374 这次更新修改多个bug,并增加一些的特性和功能.主要变化如下: (1)允许用户直接复制实例的属性,以粘贴方式创建新实体. (2)右击网址类实体,右键菜单 ...
- PHP 自动加载类
类的自动加载 (Autoloading Classes) 在编写面向对象(OOP) 程序时,很多开发者为每个类新建一个 PHP 文件. 这会带来一个烦恼:每个脚本的开头,都需要包含(include)一 ...
- 有些lambda表达式就可以体现出编程中「Context(上下文)」环境
编程中什么是「Context(上下文)」? 每一段程序都有很多外部变量.只有像Add这种简单的函数才是没有外部变量的.一旦你的一段程序有了外部变量,这段程序就不完整,不能独立运行.你为了使他们运行 ...