时间轴:

  • 2017年,数据结构加入了我的课程清单。
  • 2018年12月,我从网易云课堂下载了数据结构的所有课程视频(学校里没有网,只能离线看),开始一刷。一刷只看了视频,基本没有做题,看到AVL树的时候已经懵了,后来不了了之。
  • 2019年7月,我开始二刷数据结构。事实证明不写代码一刷是没有用的,到后面完全不记得以前看过。这次我跟着进度来,每个算法都造轮子,每道题都做。我开始上PAT平台刷题,DSA题集的数据结构部分刷完以后,就开始刷甲级题,觉得难度适中,决定参加PAT甲级考试。
  • 2019年8月,我开始写PAT甲级分类汇编,分类整理了1051~1100的题目。做题的同时,也逐渐理解了PAT出题的思路。
  • 2019年9月8日,我到上海大学计算中心参加PAT甲级考试。13:30开考,15:30满分交卷。我,PAT甲级,退役。

感想:

  • 这次考试不难,各种模拟题也不难。说到底,PAT甲级就是不难。多做题,边界情况就自然会处理了;多造轮子,熟悉算法,每种算法都把写法固定下来,万一出了问题自己也看得清楚;善用C++,把标准库容器都玩懂,尤其是std::vector和std::map,很多本来要自己实现的算法就可以交给标准库了。
  • 在刷题的时候参考过一些别人的代码,大多都是C++写的。然而,很多人表面上用着C++,实际上干的却是C的事情——只用到了C++众多特性中C的那一部分,唯一用到C++的就是std::vector、std::map、std::sort等常见容器与算法。C++是(最)适合描述数据结构的语言(之一),这话没错,但C++远不止数据结构。C++提供了namespace,有些人却要using namespace std;(参见这个问题);C++提供了lambda表达式,就算不用,也有std::greater,有些人却要自己写谓词函数;你要是说C++11是新标准,兼容性不好,明年C++20标准就要发布了,你却还在用C++98?我们既然选择了C++作为一个工具,就有义务好好利用它。
  • 上海大学的开发环境真的差。Dev-C++好像是4.9.9.2版本,没有代码提示,甚至没有括号补全,每个字符都纯手打。GCC还在用3.1.1,我想写个-std=c++11都不行。讲真,用惯auto后再也不会写std::vector<int>::iterator了。不知道为什么PAT会选上海大学作为考点,我以后也不想再去了。
  • 我对自己的C++挺自信的,在于我会的语言工具已经足够。然而,与竞赛深挖算法不同,我的学习路线很长时间以来都是以编程语言为主的,而数据结构与算法是薄弱的。这段时间的刷题,以及这一次考试的结果,弥补了这一空缺。

展望:

  • 数据结构是不够的,做题的时候就有体会。新版考纲出来之前的题,有些就不会做,比如动态规划等,需要学习算法课程才行。同时,甲级考完该考顶级了。
  • NOIP没了,实际上是改名了。我从小不学习信息竞赛,离NOIP最近的一次是上物理课的时候几个同学要去考NOIP。如果要NOIP走下去的话,高三已经晚了,但我还是想参加一下。提高组的难度是高于甲级的,算法肯定是要学的;赛制也很不一样,需要时间去适应。
  • 现在我编程语言OK了,算法也完成一半了,计算机组成结构等课程也要相应跟上。这些都是要花时间的。

PAT甲级满分有感的更多相关文章

  1. PAT甲级满分攻略|记一次考试经历

    一次考试经历 今天是"大雪",很冷. 来到隔壁的学校考试,记得上一次来河中医是两年前大一刚开学吧,那天晚上印象比较深刻,6个室友骑车到处闲逛.当时还不会Hello world. 很 ...

  2. 2019秋季PAT甲级_备考总结

    2019 秋季 PAT 甲级 备考总结 在 2019/9/8 的 PAT 甲级考试中拿到了满分,考试题目的C++题解记录在这里,此处对备考过程和考试情况做一个总结.如果我的方法能帮助到碰巧点进来的有缘 ...

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

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

  4. PAT甲级题分类汇编——序言

    今天开个坑,分类整理PAT甲级题目(https://pintia.cn/problem-sets/994805342720868352/problems/type/7)中1051~1100部分.语言是 ...

  5. 2021.9.12周六PAT甲级考试复盘与总结

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

  6. pat甲级考试+pat1051+1056

    同上一篇博客: 贪心题目我已经刷了将近30道了,由于那几天考驾照就没写,以后有空的时候补过来吧,都在codeblock里 pat的题也刷了点,acwing 的题也刷了点,基本都攒下了.以后也会慢慢补过 ...

  7. PAT甲级题解(慢慢刷中)

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6102219.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  8. PAT甲级1131. Subway Map

    PAT甲级1131. Subway Map 题意: 在大城市,地铁系统对访客总是看起来很复杂.给你一些感觉,下图显示了北京地铁的地图.现在你应该帮助人们掌握你的电脑技能!鉴于您的用户的起始位置,您的任 ...

  9. PAT甲级1127. ZigZagging on a Tree

    PAT甲级1127. ZigZagging on a Tree 题意: 假设二叉树中的所有键都是不同的正整数.一个唯一的二叉树可以通过给定的一对后序和顺序遍历序列来确定.这是一个简单的标准程序,可以按 ...

随机推荐

  1. [转] Filezilla server设置指南及中文乱码、登录欢迎语问题解决

    一.filezilla server 安装指南:FileZilla是一款免费而且开源的FTP工具.包括FileZilla Client,FileZilla Server两个版本.FileZilla S ...

  2. win10创建Ubuntu16.04子系统,安装常用软件以及图形界面(包括win10远程桌面连接Ubuntu)

    一.开启win10子系统 [ Windows Subsystem for Linux(WSL)] 二.基本配置 三.安装常用的软件 安装配置zsh 使用 bash 客户端软件 cmder(其实是win ...

  3. jsch连接sftp后连接未释放掉问题排查

    项目中通过jsch中的sftp实现上传下载文件.在压测过程中,由于调用到sftp,下载文件不存在时,系统不断抛出异常,内存飙升,逐渐把swap区也占满,通过top监控未发现占用内存的进程,通过查找ss ...

  4. Mosquitto--webServer应用测试结果

    https://blog.csdn.net/u012377333/article/details/71123671 Mosquitto--webServer应用测试结果 一.测试环境介绍 二.测试流程 ...

  5. deepin常用软件列表

    deepin常用软件列表 软件列表 Safe Eyes 视力保护程序 网址

  6. flutter 主页面底部导航栏实现以及主题风格设置

    import 'package:flutter/material.dart'; import 'package:flutter_app/bottom_navigation_widget.dart'; ...

  7. 如何设置pycharm中使用的环境为本地的环境,而不用重新安装包

    Pycharm的两种环境配置 1.新建一个虚拟环境 一开始使用pycharm创建project的时候,点击创建 create new project: 然后就会弹出下面的窗口,如果我们选择的是上面的选 ...

  8. nginx调优(二)

    nginx调优(一) (1).Fastcgi调优 FastCGI全称快速通用网关接口(FastCommonGatewayInterface),可以认为FastCGI是静态服务和动态服务的一个接口.Fa ...

  9. Spring Boot与MyBatis的集成

    SSM(Spring+Spring MVC+MyBatis)是当前主流的框架组合开发方式之一,普遍被应用于互联网项目中.如果要使用Spring Boot开发一个基于SSM框架的应用,那么我们要怎么做呢 ...

  10. 【Leetcode_easy】896. Monotonic Array

    problem 896. Monotonic Array solution1: class Solution { public: bool isMonotonic(vector<int>& ...