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

先说结论:仍未步入“高手”行列;现在的学习节奏与方法是对的,有十万分的必要坚持下去。

题目 知识点 分数
T1 前缀和、二分 11 / 20
T2 排序 25 / 25
T3 图论 17 / 25
T4 二叉树(根据中序遍历建树) 30 / 30
总分 // 83 / 100

题目很简单,总体来讲极其可惜: T1 和 T3 考试时实在没有找到 bug 出在哪里,目前 T1 的 bug 已经找到,我们先且复盘考试。

复盘

浙江大学计算机程序设计能力考试(Programming Ability Test,简称PAT),据说浙江大学 CS 平均分 70 分,于是我也想试试。

考完试我觉得这个 70 分没有什么意义:

  • 首先,本次这四道题目极其简单
  • 其次, CS 的学生也并非有平日练习数据结构算法题的习惯,算法这个东西,大部分题目:「无他,唯手熟尔」

这次考 83 分十分可惜,可惜在题目太简单了,最后半小时,我就在死死盯着屏幕:逻辑上没问题啊?而且测试用例都通过了,怎么就有判分用例过不去呢?

昨天晚上睡前刷了刷知乎,果然大家都是甲级满分…恍然大悟 T1 在哪出了问题。

经验1:认真读题,不可臆测

第一题说:计算机保存一个数组,未必要在物理空间里申请一段连续的地址。

比如一个 int (32 bit) 数组长度为 20 ,其地址可能是:

// 首地址 元素个数
1024 10
0 5
2048 5

给我询问,问我第几个元素的地址是多少。

很简单的查询问题,怕超时,我还写了前缀和和二分(实际上知乎上说直接暴力枚举找都不会超时…)。

这题有两个坑点,我考试时全踩了:

  • 最后问我,开了多少个内存空间?

    • 我以为,比如一共查询了两个数 019 ,那就妥妥地用到 1024 这块还有 2048 这块返回 2 呗;于是写个 bool used[N]; 计数
    • 结果着实被教育了一把:你要开到 19019 之间的不开吗?因此你返回查询过的最大内存块编号就行了
  • 如果查询全部越界,你也得返回 1 个地址空间而不是 0
    • 我已经看不到题目了,但是据说题目中其实写了:至少开一块地址空间

这就很服气,原来一直以来,都是题目理解错了;而我一直以为是自己的逻辑问题,没有再读题。

PAT 甲级题目都是英文的,确实很考英文阅读理解。

经验2:继续刷题,打出自信

其实 T1 都错题也有自己不自信的锅:

  • 逻辑是对的,但我非得认为“一定是自己哪里写的有疏漏”
  • 如果我能咬定:“好,逻辑没问题了,我去再读一遍题目”,那将会是截然不同的结果

y 总就有这个自信,他讲过的每道题都会先说思路,然后亲手敲一遍,最后现场 debug 。自信来自于实力强大,如果我能强大到:『这个思路,这个实现,就没问题!如果出错了,一定是题目没理解对!』自然也不会有本次考试的可惜。

T3 我也没做成满分,我怀疑是 dfs 写得不好,周日上午打力扣也是,比完才意识到 dfs 有逻辑漏洞。我现在已经无法再看到当时的题目和代码了,也没必要纠结,再多做递归题目就是了。

经验3:复习没用,继续开眼

前 3 道题做的不好,于是跳到 T4 。

当时很慌,看到 T4 更慌了:靠,我要是考前复习下建树多好。

我除了 8 月份简单捋过两个序列遍历建树的代码就没再想过了。也确实没空。

但是记住了一条核心原则:有了中序遍历序列,则可以找到中心点,然后递归下去。

于是硬着头皮,竟然写出来了, 30 分满分。递归真的很神奇,觉得算法可能有点麻烦,但是写的时候才发现递归帮我们把好多逻辑自动实现了。

因此现在更应该:

  • 把复习的时间更多地花在刷新题上
  • 好好记笔记,好好总结,争取学一遍就有学懂学透,少被模板,多理解核心思路,省着以后再回来看

总结

强烈给大家推荐 y 总的 PAT 课,虽然我算是他比较差的学生了(感觉很多人考了满分):AcWing.com PAT甲级辅导课

我 8 月 9 号买的, 9 月 6 号刷完,之后就没怎么碰过了。收获不小,关于算法细节的咱们以后慢慢唠。

算法这部分,上述三个经验总结起来,就一句话:现在的学习节奏与方法是对的,有十万分的必要坚持下去! 现在的学习节奏与方法是对的,有十万分的必要坚持下去! 现在的学习节奏与方法是对的,有十万分的必要坚持下去!

接下来准备干掉 y 总的算法提高课和算法竞赛进阶指南,这两节课内容太多了,先挑重点攻破吧!

2021.9.11周六PAT甲级考试复盘与总结相关推荐

  1. 2019秋季PAT甲级考试总结:努力+策略+运气

    鉴于这两天有很多网友联系我问这次考试的题解,所以我干脆就花点时间把C++题解整理出来了,见文末 经过一两个月的备战PAT,在今天终于画上了一个圆满的句号,取得了满分的成绩. 我是在南京的金陵科技学院考 ...

  2. 2017年9月17日PAT甲级考试反思

    2017年9月17日PAT甲级考试反思 前天跑河南中医药大学考试,早上九点多出发的,碰上地铁大检查,堵二七地铁站一个多小时,十一点多才到达河中医.到地方后发现忘记打印准考证了,问路上的同学打听打印店的 ...

  3. 2021年春季PAT甲级考试

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

  4. 2019年秋季PAT甲级考试记录、经验总结

    在武汉科技大学黄家湖校区考的,非常偏远,在很荒僻的地方,荒僻到公交都要3元的地方(开玩笑~).我去的路上大概花了两个小时,12点半到的,武科机房软.硬件条件很好,跟官网的要求一样,绝对能够满足各种常用 ...

  5. pat甲级考试报名费_PAT(甲级)2019年冬季考试 题解

    总结写在前头: 考了字符串.链表(伪链表).图.树.考点比较均衡. 本次考试难度还行,需要较扎实的数据结构底子,对于字符串处理的技巧有一定的要求. 说句题外话,字符串是个重点,主要因为很多人会忽视字符 ...

  6. PAT甲级考试知识点总结和一些看法

    0 引言 本人今年PAT甲级考了95分,平时力扣也有再刷(大概有360题),感觉PAT主要还是面向考研党的,里面的题目其实难度是小于力扣的,但这种难度的题目浙大去年考研机试居然有20%的0分我其实不是 ...

  7. pat甲级考试报名费_2019吉林省公务员考试笔面心得

    2019年的2月26号,开始报班学习公务员考试,开始的时候什么选岗啊,体测啊,选调生啊,一无所知,一头雾水,好在可能是比较幸运,报的岗位竞争没有特别激烈,所以顺利通过,毕竟从二月到六月,整整四个月都在 ...

  8. 2019秋季PAT甲级考试心得

    第一道题一共四个测试点,做了一个小时,有两个测试点没过,得了12/20分 做题的时候遇到一个问题,就是include<math.h>之后,使用pow(10,n)计算报错具有多个定义之类的( ...

  9. pat甲级考试报名费_每日一感——记第一次PAT甲级考试之感想

    今天下午一点半开始PAT考试,原本四点半结束,不过因为服务器原因,又推迟了一会.将近五点的时候我才交卷. 考完之后,平淡之外有点复杂.因为既没有考之前想的全部都不会,也没有考之前想的全部都会.一一半一 ...

最新文章

  1. POJ - 3186 Treats for the Cows DP
  2. php屏蔽审查元素,前端:屏蔽F12审查元素,禁止修改页面代码
  3. MaxCompute Mars开发指南
  4. php socket非阻塞,php stream_set_blocking设置非阻塞模式,php stream_set_blocking影响函数fgets()和fread()...
  5. vim 自定义命令 自定义快捷键(转)
  6. Flink SQL 在网易云音乐的产品化实践
  7. DAEMON Tools
  8. basic code
  9. 星光灿烂 拍夜景的技巧和设置
  10. 王爽《汇编语言》第2版-----2、寄存器
  11. 浅谈es6 promise
  12. http协议 文件下载原理详解
  13. ExtJS2.0实用简明教程——可编辑表格EditorGridPanel
  14. 小白必看的经典机器学习入门项目
  15. Office2010安装出错(Error1406)
  16. 全球AI泰斗Stuart Rusell:研究人工智能太诱人了,不可抗拒
  17. 《免费》——比特经济的到来
  18. Navicat Premium连接服务器数据库不成功的原因
  19. MSDC 4.3 接口规范(26)
  20. unity3d网络延时检测

热门文章

  1. Eclipse中Maven的设定
  2. Excel VBA 循环读取一个目录下面多个文件的内容,放到另外一个文件中
  3. Excel中如何引用 「文件名」、「sheet 页」的名字
  4. php 瓶颈,追踪php代码性能瓶颈
  5. python3 中的Json序列化、反序列化 和 字符编码的问题解决
  6. SQL 2005数据库转为2000的终极解决方案
  7. 64位win10系统无法安装.Net framework3.5的两种解决方法【转】
  8. 【UE4游戏开发】安装UE4时报SU-PQR1603错误的解决方法
  9. 解决Ubuntu系统“无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”的有效方法
  10. 如何使用代码确定设备屏幕大小类别(小,普通,大,xlarge)?