周六PAT甲級考試復(fù)盤與總結(jié)
先說結(jié)論:仍未步入“高手”行列;現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅(jiān)持下去。
題目很簡單,總體來講極其可惜:T1 和 T3 考試時(shí)實(shí)在沒有找到 bug 出在哪里,目前 T1 的 bug 已經(jīng)找到,我們先且復(fù)盤考試。
復(fù)盤
浙江大學(xué)計(jì)算機(jī)程序設(shè)計(jì)能力考試(Programming Ability Test,簡稱PAT),據(jù)說浙江大學(xué) CS 平均分 70 分[1],于是我也想試試。
考完試我覺得這個(gè) 70 分沒有什么意義:
- 首先,本次這四道題目極其簡單
 - 其次, CS 的學(xué)生也并非有平日練習(xí)數(shù)據(jù)結(jié)構(gòu)算法題的習(xí)慣,算法這個(gè)東西,大部分題目:「無他,唯手熟爾」
 
這次考 83 分十分可惜,可惜在題目太簡單了,最后半小時(shí),我就在死死盯著屏幕:邏輯上沒問題啊?而且測試用例都通過了,怎么就有判分用例過不去呢?
昨天晚上睡前刷了刷知乎,果然大家都是甲級滿分...恍然大悟 T1 在哪出了問題。
經(jīng)驗(yàn)1:認(rèn)真讀題,不可臆測
第一題說:計(jì)算機(jī)保存一個(gè)數(shù)組,未必要在物理空間里申請一段連續(xù)的地址。
比如一個(gè) int (32 bit) 數(shù)組長度為 20 ,其地址可能是:
- // 首地址 元素個(gè)數(shù)
 - 1024 10
 - 0 5
 - 2048 5
 
給我詢問,問我第幾個(gè)元素的地址是多少。
很簡單的查詢問題,怕超時(shí),我還寫了前綴和和二分(實(shí)際上知乎上說直接暴力枚舉找都不會(huì)超時(shí)...)。
這題有兩個(gè)坑點(diǎn),我考試時(shí)全踩了:
最后問我,開了多少個(gè)內(nèi)存空間?
- 我以為,比如一共查詢了兩個(gè)數(shù) 0 和 19 ,那就妥妥地用到 1024 這塊還有 2048 這塊返回 2 唄;于是寫個(gè) bool used[N]; 計(jì)數(shù)
 - 結(jié)果著實(shí)被教育了一把:你要開到 19 ,0 到 19 之間的不開嗎?因此你返回查詢過的最大內(nèi)存塊編號就行了
 
如果查詢?nèi)吭浇?,你也得返?1 個(gè)地址空間而不是 0
- 我已經(jīng)看不到題目了,但是據(jù)說題目中其實(shí)寫了:至少開一塊地址空間!
 
這就很服氣,原來一直以來,都是題目理解錯(cuò)了;而我一直以為是自己的邏輯問題,沒有再讀題。
PAT 甲級題目都是英文的,確實(shí)很考英文閱讀理解。
經(jīng)驗(yàn)2:繼續(xù)刷題,打出自信
其實(shí) T1 都錯(cuò)題也有自己不自信的鍋:
- 邏輯是對的,但我非得認(rèn)為“一定是自己哪里寫的有疏漏”
 - 如果我能咬定:“好,邏輯沒問題了,我去再讀一遍題目”,那將會(huì)是截然不同的結(jié)果
 
y 總就有這個(gè)自信,他講過的每道題都會(huì)先說思路,然后親手敲一遍,最后現(xiàn)場 debug 。自信來自于實(shí)力強(qiáng)大,如果我能強(qiáng)大到:『這個(gè)思路,這個(gè)實(shí)現(xiàn),就沒問題!如果出錯(cuò)了,一定是題目沒理解對!』自然也不會(huì)有本次考試的可惜。
T3 我也沒做成滿分,我懷疑是 dfs 寫得不好,周日上午打力扣也是,比完才意識到 dfs 有邏輯漏洞。我現(xiàn)在已經(jīng)無法再看到當(dāng)時(shí)的題目和代碼了,也沒必要糾結(jié),再多做遞歸題目就是了。
經(jīng)驗(yàn)3:復(fù)習(xí)沒用,繼續(xù)開眼
前 3 道題做的不好,于是跳到 T4 。
當(dāng)時(shí)很慌,看到 T4 更慌了:靠,我要是考前復(fù)習(xí)下建樹多好。
我除了 8 月份簡單捋過兩個(gè)序列遍歷建樹的代碼就沒再想過了。也確實(shí)沒空。
但是記住了一條核心原則:有了中序遍歷序列,則可以找到中心點(diǎn),然后遞歸下去。
8月17號關(guān)于這部分的筆記
于是硬著頭皮,竟然寫出來了, 30 分滿分。遞歸真的很神奇,覺得算法可能有點(diǎn)麻煩,但是寫的時(shí)候才發(fā)現(xiàn)遞歸幫我們把好多邏輯自動(dòng)實(shí)現(xiàn)了。
因此現(xiàn)在更應(yīng)該:
- 把復(fù)習(xí)的時(shí)間更多地花在刷新題上
 - 好好記筆記,好好總結(jié),爭取學(xué)一遍就有學(xué)懂學(xué)透,少被模板,多理解核心思路,省著以后再回來看
 
總結(jié)
強(qiáng)烈給大家推薦 y 總的 PAT 課,雖然我算是他比較差的學(xué)生了(感覺很多人考了滿分):AcWing.com PAT甲級輔導(dǎo)課[2]
我 8 月 9 號買的, 9 月 6 號刷完,之后就沒怎么碰過了。收獲不小,關(guān)于算法細(xì)節(jié)的咱們以后慢慢嘮。
算法這部分,上述三個(gè)經(jīng)驗(yàn)總結(jié)起來,就一句話:現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅(jiān)持下去! 現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅(jiān)持下去! 現(xiàn)在的學(xué)習(xí)節(jié)奏與方法是對的,有十萬分的必要堅(jiān)持下去!
接下來準(zhǔn)備干掉 y 總的算法提高課和算法競賽進(jìn)階指南,這兩節(jié)課內(nèi)容太多了,先挑重點(diǎn)攻破吧!
參考資料
[1]浙大PAT考試的成績對保研有所幫助嗎?- 陳越姥姥的回答 - 知乎: https://www.zhihu.com/question/37289617/answer/71302179[2]AcWing PAT甲級輔導(dǎo)課: https://www.acwing.com/activity/content/27/

















 
 
 







 
 
 
 