今天开个坑,分类整理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甲级题分类汇编——序言的更多相关文章

  1. PAT甲级题分类汇编——杂项

    本文为PAT甲级分类汇编系列文章. 集合.散列.数学.算法,这几类的题目都比较少,放到一起讲. 题号 标题 分数 大意 类型 1063 Set Similarity 25 集合相似度 集合 1067 ...

  2. PAT甲级题分类汇编——图

    本文为PAT甲级分类汇编系列文章. 图,就是层序遍历和Dijkstra这一套,#include<queue> 是必须的. 题号 标题 分数 大意 时间 1072 Gas Station 3 ...

  3. PAT甲级题分类汇编——树

    本文为PAT甲级分类汇编系列文章. AVL树好难!(其实还好啦~) 我本来想着今天应该做不完树了,没想到电脑里有一份讲义,PPT和源代码都有,就一遍复习一遍抄码了一遍,更没想到的是编译一遍通过,再没想 ...

  4. PAT甲级题分类汇编——理论

    本文为PAT甲级分类汇编系列文章. 理论这一类,是让我觉得特别尴尬的题,纯粹是为了考数据结构而考数据结构.看那Author一栏清一色的某老师,就知道教数据结构的老师的思路就是和别人不一样. 题号 标题 ...

  5. PAT甲级题分类汇编——排序

    本文为PAT甲级分类汇编系列文章. 排序题,就是以排序算法为主的题.纯排序,用 std::sort 就能解决的那种,20分都算不上,只能放在乙级,甲级的排序题要么是排序的规则复杂,要么是排完序还要做点 ...

  6. PAT甲级题分类汇编——计算

    本文为PAT甲级分类汇编系列文章. 计算类,指以数学运算为主或为背景的题. 题号 标题 分数 大意 1058 A+B in Hogwarts 20 特殊进制加法 1059 Prime Factors ...

  7. PAT甲级题分类汇编——线性

    本文为PAT甲级分类汇编系列文章. 线性类,指线性时间复杂度可以完成的题.在1051到1100中,有7道: 题号 标题 分数 大意 时间 1054 The Dominant Color 20 寻找出现 ...

  8. 【转载】【PAT】PAT甲级题型分类整理

    最短路径 Emergency (25)-PAT甲级真题(Dijkstra算法) Public Bike Management (30)-PAT甲级真题(Dijkstra + DFS) Travel P ...

  9. PAT甲级题解分类byZlc

    专题一  字符串处理 A1001 Format(20) #include<cstdio> int main () { ]; int a,b,sum; scanf ("%d %d& ...

随机推荐

  1. Android根据内网外网连接情况配置服务器访问IP

    新项目的app,可通过内网和外网的服务器ip进行请求访问,但是客户提供了专业终端,终端在wifi情况下走外网内网都可以,但关闭wifi则只能走4G专网,也就是只能走内网. 可前往我的小站查看:Andr ...

  2. 用样式表美化QTabwidget外观

    没有仔细看是否正确,先保存到这里,以后研究一下 一.参考文章:http://bbs.csdn.net/topics/390632657?page=1 setStyleSheet("QTabW ...

  3. python 椭球面

    作者:chaowei wu链接:https://www.zhihu.com/question/266366089/answer/307037017来源:知乎著作权归作者所有.商业转载请联系作者获得授权 ...

  4. Page directive: invalid value for import

    原有项目启动正常,正常访问:后来换成tomcat7.0.70:后启动正常,登陆正常,然而点进去任何菜单都会报错: java.lang.IllegalArgumentException: Page di ...

  5. JVM 类加载器的双亲委托机制

    1.类加载器的层次结构 在双亲委托机制中,各个加载器按照父子关系形成了树形结构(逻辑意义),除了根加载器之外,其余的类加载器都有且只有一个父加载器. public class MyTest13 { p ...

  6. JS Array.apply会有内存泄漏问题

    报错内容: Maximum call stack size exceeded 参考:https://www.jianshu.com/p/b9ba0ddd3392 对象较多,前端JS内存溢出: 数组克隆 ...

  7. Tosca IE 浏览器的Internet Options 配置, 解决login很慢的问题

    Screen 1-3 Screen 4-6 Screen 7

  8. H5网站接入支付宝的支付接口

    写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题 H5手机网站接入支付宝的支付接口,推荐使用支付宝提供的SDK来快速开发 我使用的是SDK开发 引用命名空间 using Aop. ...

  9. tomcat的AJP(定向包协议)协议

    由于tomcat的html和图片解析功能相对其他服务器如apche等较弱,所以,一般都是集成起来使用,只有jsp和servlet服务交由tomcat处理,而tomcat和其他服务器的集成,就是通过aj ...

  10. ISO/IEC 9899:2011 条款6.5.7——按位移位操作符

    6.5.7 按位移位操作符 语法 1.shift-expression: additive-expression shift-expression    <<    additive-ex ...