2019 秋季 PAT 甲級 備考總結
在 2019/9/8 的 PAT 甲級考試中拿到了滿分,考試題目的C++題解記錄在這里,此處對備考過程和考試情況做一個總結。
目錄
1. 《算法筆記》(←閱讀內容目錄在這里)
3. 題型總結 + 刷題筆記 (←筆記目錄在這里)
3. 對這次考試的總結(碎碎念,可忽略)
一、備考內容
1. 《算法筆記》
即傳說中的晴神寶典,非常適合備考 PAT,書中對每個題型給出了分析,模板代碼和例題。PAT有很多模板題,讀這本書可以快速掌握這部分比較常規的題型,在此基礎上再練習各種變體。
但晴神寶典內容較多,備考中並未全部讀完,參考 經驗貼 作選擇閱讀,有時間其實應當多讀一些,但只讀以下內容也可勉強過關
- 第1章 如何使用本書
- 第2章 C/C++快速入門
- 第3章 入門篇(1)——入門模擬
- 第4章 入門篇(2)——算法初步
- 第5章 入門篇(3)——數學問題
- 第6章 C++標准模板庫(STL)介紹
- 第7章 提高篇(1)——數據結構專題(1)
- 第8章 提高篇(2)——搜索專題
- 第9章 提高篇(3)——數據結構專題(2)【9.1-9.7】
- 第10章 提高篇(4)——圖算法專題【10.1-10.4.1】
在讀的過程中,主體按順序,其中:
第2章 有C++基礎所以作略讀,因為書中有一些語法細節的提醒,個人認為讀一下還是有一定幫助的。
第5章 數學問題 因為對后面的內容沒有什么影響,備考緊張就先跳過,其他內容復習差不多后再讀這部分並挑選題庫中的數學題進行練習。
第6章 介紹STL可以跳過,其他章節用到 STL 時有提醒應當讀哪一部分,讀這些即可。書之外的STL相關內容可以在刷題時候學習,官網其實介紹的挺清楚的,對用法有困惑時再檢索一些博文閱讀。
2. PAT 題庫刷題
題庫非常重要,有很多很多人刷通了題庫,甚至刷了好幾遍。但是其實刷不完也可勉強過關,備考中只刷了78題Orz
刷題過程是先按題型刷,然后按年份從后往前刷。雖然做的題比較少,但做過的題都做了較為詳細的筆記,所以復習效果尚可。
- 按題型刷題 方法記錄在下面記筆記的部分中。
- 按年份刷題 其實就是計時模擬,還是很有必要的。自己做的感覺和在考場還有很大區別,練習時盡量控制在兩小時內完成一套題。(若是做之前沒有做過的題超時也要接受Orz 復習到自己不熟的知識點是好事,要保持心態平穩)
刷題時主要參考了柳婼小姐姐的代碼,她的代碼非常簡潔,且每題都有博文講解自己的思路,在線使用的話用 google 搜索題目一般第一條就是她的博文。
一般每做一題,即使自己已經AC,也會去看一下她的代碼,看自己的思路有沒有足夠清晰簡潔,看自己的代碼還有沒有簡化的空間。但有時博文介紹比較簡練難以理解或是卡測試點時,會廣泛閱讀很多其他人的代碼和思路,有些博文會寫一些針對測試點的注意事項,有助於脫離卡測試點的焦慮困境。
3. 題型總結 + 刷題筆記
先整理一下自己備考過程中的筆記目錄
刷題+記筆記過程:
- 讀《算法筆記》並對重要內容作標注
- 對《算法筆記》中的內容做整理,主要是對題型的理解和模板代碼的整理
- 做《算法筆記》例題,可以對着書中所給參考代碼敲一遍
- 讀柳婼小姐姐的代碼,將代碼中可以簡化的部分進行修改,將模板代碼中可以簡化的部分記錄到筆記中。
- 從題庫中挑選這個類型的題目進行刷題
- 先做較簡單的,一般一個題型比較靠前的題目會相對容易些,做一兩道簡單題熟悉模板
- 再做有一定變化的,總結題目在模板題基礎上會從哪些方面進行變化,應當如何解決
- 每做一道題要記錄此題的思路,編碼中有哪些細節問題
二、考試情況
1. 考前准備
由於沒有刷完題庫,所以考前瀏覽一遍題庫,是否有考綱內自己不熟悉的題目,查看其他人的題解,思考從自己現有的知識能力如果遇到這種題的思考路徑。
復習一遍自己的筆記,默背一遍模板代碼。
注意不要再做沒有做過的較復雜的題目了,很影響心態Orz
考前有條件的話盡量熟悉一下自己的考場。
2. 考試過程
進入考場后先檢查自己機器的編譯器是否好用,是否支持 C++11 等,檢查黑窗能否復制粘貼,進行相關設置便於后續調試,最后建文件寫頭文件。
注意如果機器有問題,只要考場有位置應該都可以換機器,不影響考試。
開考后先瀏覽題目,看題型是否有自己完全不熟悉的題目,做好心理准備,調整自己的時間安排。
做題時可以看題目的時間要求和數據規模,如果時間要求很寬松數據點又少,那就可以試着暴力解決。
做題遇到困難可以看排行榜,如果大家都跳過某些題目說明有困難,自己也可放心先跳過。
考試最后三十分鍾提交評測排隊就很慢了,最后十分鍾系統崩潰也不會補時。所以要盡量兩個半小時內完成所有題目,保證最后三十分鍾只需要調整一些小的測試點即可而非完成一道完整的題目,慌亂會影響心態。
3. 對這次考試的總結
最后在這部分做一些對這次考試的碎碎念……也算是記錄一下自己考試時候的心路歷程吧……
對這次題目的難易不敢多做評價,畢竟連題庫都沒有刷通,也不敢說准備的很充分。只是從考試過程和最后結果看,第一題真的很難Orz
考試時讀完第一題只想到DFS,至今不知是否有其他好方法Orz 花了幾分鍾時間懷疑自己,實在是不敢信第一題就要DFSOrz 寫了一部分代碼后感覺這20分題實在沒法直接完成,心態上很慌后面題能不能完成,就看了下排名,發現好多人過了后面題,沒有人過第1題Orz 果斷放下,先寫后面的(捂臉)
第2、3題都是模板題,當時看到題目時還是有點高興地,考前很怕模板題出得多了想要變花樣。但因為如此,第2題看題看錯了,在題解中也寫了,把題目理解復雜了,考試最后一直在調這個題,測試點比較松,完全理解錯題目竟然只差一個3分點,於是就只往邊界點想,沒想到自己題目理解有問題。最后重新讀題懷疑自己理解錯但也不太信題目出的這么粗暴,試探性改了下結果AC了Orz
第4題看似模板題,當時其實也理解錯了……以為是看最短路徑,上來就把模板先默出來,一頓操作猛如虎,一看輸出傻眼了Orz 也是調了好一陣才重新回去讀題,發現理解錯了……幸好當時時間還算充裕,心態比較穩,很順利在原來代碼基礎上想到了改的方法,順利AC,這時候才77分,去看排名很慘Orz
回頭寫第1題看了時間覺得應該是暴解,就暴解了一下Orz,結果超時,再想剪枝的問題,想了一會想到應該把前面位太小后面數再大也白給的剪掉,改完提交AC
最后時間用來調第2題Orz
這次考試后面系統崩的很徹底,至少還有15分鍾結束的時候就服務器錯誤提交不上去了,當時第2題還沒調好,差3分,就一直在改。感覺這么早系統就崩應該會補時,但考場老師也並不知道系統什么時候會修好,補時會補多久,就一直在試一直在試。系統修好之后提交一下發現1000+排隊評測的Orz 當時也不知道補時補多久,有點慌怕改不出來,但想了想作為一個知足常樂的人 97 也能接受,心態穩下來以后反而改好了。
這次能滿分感覺有很大運氣因素,再就是心態比較好。但因為備考准備不充分,考試前幾天心態崩很多次,真正臨考時完全隨緣了反而心態好起來了。
總結就是心態很重要,備考時還是要盡量多學,提高自己的對考試的信心,心態崩塌真的很影響復習效率。等真正要上考場了就不要期望過高,壓力太大,反正到了這個時候,慌也沒用,大不了再來一次。希望以后面對任何考試或是任務都能在准備中多下功夫,真正考驗到來時能坦然面對,就很好了。