PAT甲級滿分有感
時間軸:html
- 2018年12月,我從網易雲課堂下載了數據結構的全部課程視頻(學校裏沒有網,只能離線看),開始一刷。一刷只看了視頻,基本沒有作題,看到AVL樹的時候已經懵了,後來不了了之。
- 2019年7月,我開始二刷數據結構。事實證實不寫代碼一刷是沒有用的,到後面徹底不記得之前看過。此次我跟着進度來,每一個算法都造輪子,每道題都作。我開始上PAT平臺刷題,DSA題集的數據結構部分刷完之後,就開始刷甲級題,以爲難度適中,決定參加PAT甲級考試。
- 2019年8月,我開始寫PAT甲級分類彙編,分類整理了1051~1100的題目。作題的同時,也逐漸理解了PAT出題的思路。
- 2019年9月8日,我到上海大學計算中心參加PAT甲級考試。13:30開考,15:30滿分交卷。我,PAT甲級,退役。
![](http://static.javashuo.com/static/loading.gif)
感想:c++
- 此次考試不難,各類模擬題也不難。說到底,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了,算法也完成一半了,計算機組成結構等課程也要相應跟上。這些都是要花時間的。
歡迎關注本站公眾號,獲取更多信息