【PAT甲級筆記】別人經驗總結和整理

時間有限,針對PAT考試,花了一點時間整理了一下學習內容:

【推薦資源】
1.柳神按題型整理的PAT甲級【鏈接】
2.個人覺得不錯的網站’【鏈接】
3.甲級刷題資源,還是一個比較全的分類,知識點總結等【鏈接】
4.甲級刷題索引(整理的所有題解)【鏈接】

考試考綱:
理解並熟練編程實現經典高級算法,包括哈希映射、並查集、最短路徑、拓撲排序、關鍵路徑、貪心、深度優先搜索、廣度優先搜索、回溯剪枝等;

常考的知識點:

哈希映射:一般會用map和unordered_map就好。此外,比如說題目固定了關鍵字爲4個大寫字母,那麼可以把關鍵字看成26進制數,這樣就能把字符串轉換爲int型數據處理,提高程序運行速度。當然基本概念也不能忘,解決哈希衝突的基礎方法要理解,包括開放地址法(線性探測、平方探測)和鏈地址法(開放定址法)。

並查集:主要就是掌握findfather函數(找到某節點所在集合的“根”)。壓縮路徑的函數如下:

int findfather(int a){
if(a!=father[a]{
father[a]=findfather(father[a]);
}
return father[a];
}
最短路徑:主要掌握dijkstra+DFS。如果出現了負邊權,就用bellman-ford(尚未考過)。

拓撲排序、關鍵路徑:可以做做PTA上的 Data Structures and Algorithms (English)題目集7-12和7-18,數據結構與算法題目集(中文)7-11。

貪心:考的很少。印象比較深的是甲級題庫1033 To Fill or Not to Fill,挺難的。

DFS、BFS:算是必須掌握的基礎了。

回溯剪枝:就記得甲級題庫裏的1103了,不過因爲內存限制放的寬,用動態規劃暴力做也可以。

此外,AVL樹的插入刪除要會寫。

根據樹的各種遍歷方式構建二叉樹經常考到,最好熟練掌握。

堆的構建、刪除、插入要會寫,即“自頂向下”和“自底向上”調整堆。

最後,關於最小生成樹和動態規劃,這兩個都是頂級的內容了,基本不會考。

需要常複習的點 :

  • 構建二叉樹遍歷
  • djistra最短路徑
  • dfs搜索圖
  • findfather 並查集
  • AVL 等變形

不常考的知識點:

不考的題型參考如下:(摘自柳神)
在這裏插入圖片描述
難度比較大,感覺不是複習重點的題(參考柳神)
在這裏插入圖片描述

考試時題目分類:

PAT甲級一共有四道題,分數分佈爲
20分 25分 25分 30分
前兩題主要爲乙級的英文版。
PAT考試的題目類型有趨於穩定的傾向,所以有點類似大學裏的考試,如果可以,歷年的題目作爲參考的重點,並且有個複習的傾向性。(歷年考題會放在PAT題庫的最後幾道題裏,因爲從前往後更新~)
所以,推薦從後往前根據題型開始做

數據結構部分:

  1. 第一部分:甲級練習題裏的基礎數據結構題。
    題目有1004,1020,1021,1028,1032,1107等。
    涉及到的有隊列,棧,鏈表,二叉樹,並查集。
    如果你發現自己並不熟悉這些,那麼應該花幾天的時間學習c++STL相關操作,二叉樹前中後遍歷,針對結構體使用algorithm頭文件的排序,對STL的向量,棧,隊列,map,set相關操作和迭代器足夠熟悉,否則強烈建議你花上一些時間學習。

  2. 第二部分:模擬題範圍較廣,可以鍛鍊思維,增強碼代碼能力。
    題目有但不限於這些:1005,1006,1008,1009,1011,1015,1024,1035,1042,1043,1048,1065。
    你需要學會貪心思想,深度優先搜索和廣度優先搜索,進制轉換,篩素數,字符串處理,二分查找。

  3. 第三部分:之後的題目涉及到一些算法,更高級一點的數據結構,數學,動態規劃知識。
    動態規劃較爲晦澀,初學者需要較多時間才能掌握。例如1007,最大子串和就是經典的一題。另外建議你學習LIS最長上升子序列的O(n^2)做法,LCS最長公共子序列,01揹包,這些建議去hduoj,討論版有詳細解析。
    樹狀數組,AVL:例如1057需要用到樹狀數組的快速求和進行二分查找,1066使用AVL進行模擬。AVL的旋轉思想對Splay這樣飄逸數據結構的學習是必不可少的。

算法部分

  1. 主要涉及到圖論算法。
    如1003,1046,1106,主要是最短路算法和深度優先搜索的應用。
    1053有多叉樹的儲存和遍歷。
    圖的儲存學會使用矩陣和vector兩種方式。
    最短路算法較多,不建議全都學會,但一定要對其中一種足夠熟悉,並且對矩陣圖和vector圖都會寫。
  2. 數學方面主要是學會篩素數,求gcd,lcm,O(sqrt(n))的找約數,素因子,會用約數和定理,約數個數定理,c++的話還有大數的模擬。

值得重新刷的題目:
1053(樹題)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章