PAT第一輪刷題總結 Phoenix wei

2022-07-05 22:39:17 字數 4835 閱讀 8925

前排感謝晴神大大,以及眾多大佬的幫助,讓我這個程式設計小白走上了coding的不歸之路。。

本來有望早一天登頂,還是由於自己的小惰性遲到了一天,也算提前完成自己一月份的計畫。最後一天解決了之前遺留4道題的小bug,雖然效率及其低下,還是最終完成了,不然強迫症會犯的~~

由於之前在準備考研,並沒系統的刷過題,零零星星刷的題目不超過十道,自己的程式設計能力約等於零,雖然一直想從事計算機相關工作,但自己之前並沒有著重提高自己的**能力。初試過後,回家浪了一星期,元旦回到學校。自己也有了大量的空閒時間來刷pat,一方面為複試做準備,另一方面也確確實實該加強一下自己的程式設計能力。

晴神寶典確實具有極佳的口碑,乾貨十足,其中也不乏晴神賣萌的痕跡~~自己從寶典第三章到最後一章節,從講解到實戰指南,上邊的**幾乎均實現了一遍,雖然還有一部分的章節自己還不是特別熟練,但我始終相信重複就是王道,只有靜心練習,總會有所提高的!

從2號到29日,基本上保證每天6小時左右到程式設計時間(上下午各三小時),從入門篇到強化篇,到最後幾天做往屆pat真題,絕大部分都是自己獨立思考下完成,一些題目的測試點通不過的參考晴神寶典或者一些部落格的題解。能感覺到自己在一點一滴的進步,一致最後幾套真題卡著時間做基本上2個半小時能完成90+的分數。雖然並不是十分完美,但按自己的水平來看也在可接受範圍之內,希望能在下一輪刷題的過程中加快速度和準確率。確實達到滿分還需要一些運氣,更需要一定的實力,各類資料結構演算法的套路要更加熟練,要把打字編碼速度加快,所使用的演算法能加優化,審題也顯得尤為重要,有時往往乙個細節的疏漏都會導致debug很長一段時間。

本月剩下的兩天準備回顧一下這段時間所學的知識,思考未來的路,制定一下2月份的計畫。在下一輪的刷題中也會陸續更新pat題解,學習更加高效的編碼技巧,將各種語法運用熟練。自身並不是天賦異稟,但我更相信天道酬勤。

(ps:等成績的過程是真心漫長。。。。。。)

以下是自己的學習記錄:

pat第四章

難題佇列

a1075、a1080、a1095、b1033、a1033、a1089

4.1節排序(1月5日)

a1075(25)第五個測試點通不過得22分

a1080(30)第4個測試點通不過得26分

a1095  需要使用map的用法;將hh:mm:ss轉換為秒的形式便於操作(學完6.4節後再做)

4.2節雜湊(1月6日)

a1084 注意空格鍵也要進行判斷;

b1033 (20)第3測試點通不過 19分

4.3節遞迴(1月6日)

全排列問題

n皇后問題(遞迴暴力法,回溯法)

4.4節貪心(1月7日)

pata1033 加油站問題(沒思路)

pata1037(25)優惠卷問題//加=測試點3顯示執行超時,測試點6可以通過;不加=測試點3可以通過,測試點6顯示答案錯誤 得22分

pata1067 (25)第3、4測試點超時。得19分(尋找首個不相等的值每次都是從頭開始找導致超時)

pata1038(30)學習完6.3string 用法後再做

4.5節二分(1月8日)

pata1010「 long long inf=((long long) 1<<63-1);」注意括號問題;未知進製數轉化為long long時要判斷是否溢位

4.6節 two pointer(1月8日)

pata1089 將三類陣列均置於全域性;引入比較函式(bool型),輸出函式(void型);判斷是否插入排序;歸併排序使用非遞迴方法;

4.7節其他高效技巧與演算法(1月8日)

打表、遞推、隨機選擇演算法

pata1093、pata1101新增輔助陣列

pat第五章

難題佇列

patb1003、pata1049、

5.1節簡單數學(1月8日)

patb1003 (再做)使用數學方法找規律完成

pata1104   浮點數與整數相乘浮點數應放在前邊(ans+=v(n-i+1)i)(v為double型,v放在前邊)(若為(n+1-i)iv.    則第2、3測試點答案錯誤)

pata1049  能不開陣列盡量不開陣列,開陣列的話把邊界情況考慮到

5.2節最大公約數與最小公倍數(1月9日)

5.3節分數的四則運算(1月9日)

注意分數的乘除法int型會導致溢位

標頭檔案要加#include using namespace std;

5.4節素數(1月9日)

pata1078 二次探測法每次衝突都從頭開始,並不是接著上一次探測的結果。

5.5節質因子分解(1月10日)

pata1096 注意大質數時的輸出情況。

5.6節大整數運算(1月10日)

熟記大整數的加減乘除運算,將字串轉化為大整數,輸出函式

pata1024  將大整數範圍開得大一些d[1000]

pat第六章

難題佇列

pata1022

6.1vector的常見用法詳解(1月11日)

pata1039 出現眾多名字時,與查詢相關時使用hash表示字串,使用vector表示

pata1047 如果排序時直接對字串排序,那麼會導致大量的字串移動,應採用字串下標來代替字串本身進行排序。

6.2set的常見用法詳解(1月11日)

set最主要的作用是自動去重並按公升序排序

set只能通過迭代器(iterator)訪問;insert();find();erase();size();clear();

6.3string的常見用法詳解(1月11日)

區分cstring與string

c_str()將string型別轉化為字元陣列

6.4map的常見用法詳解(1月11日)

map主要用途:建立字串與整數之間對映;判斷大整數或其他型別資料是否存在;字串與字串之間的對映

find();erase();size();clear()

pata1022 數字圖書館,熟練掌握stl的語法

6.5queue的常見用法詳解(1月12日)

q.push();q.front();q.back();q.pop();q.empty();q.size();

6.6priority_queue的常見用法詳解(1月12日)

priority_queue name;

name.top()訪問隊首元素;name.push();name.pop();name.empty();name.size();

優先順序設定

使用top()函式前,必須用empty()判斷優先順序佇列是否為空,否則可能會因為隊空而出現錯誤;

6.7stack的常見用法詳解(1月12日)

st.push(); st.top(); st.pop(); st.empty(); st.size();

stack用來模擬一些遞迴;

6.8pair的常見用法詳解(1月12日)

pair的常見用途:用來代替二元結構體及其建構函式,可以節省編碼時間;作為map的鍵值對來進行插入

6.9algorithm的常見用法詳解(1月12日)

max();min();abs();

swap();reverse();

next_permutation();給出序列在全排列的下乙個序列;

fill();可以把陣列或容器中的某一段區間賦為某乙個相同的值;

sort();

lower_bound(first, last,val);尋找在陣列或容器的[first,last)範圍內第乙個值大於等於val的元素的位置;

upper_bound(first, last,val);尋找在陣列或容器的[first,last)範圍內第乙個值大於val的元素的位置

pat第七章

難題佇列

7.1棧的應用(1月12日)

pata1051 pop、top操作前面要判空;

7.2佇列的應用(1月12日)

pata1056 用佇列儲存比賽序號,沒有必要儲存整個結構體

7.3煉表處理(1月13日-1月14日)

pata1032   不使用flag標記,測試點4答案錯誤。。。本題可以使用flag進行標記,兩次遍歷即可完成。

pata1052.  要將無效結點排除

pata1097   注意結點均為有效的情況,remove序列個數為0;

pat第八章

8.1dfs(1月14日)

pata1103  注意超時問題

8.2bfs(1月14日)

佇列中存放的元素最好不要是元素本身,而是它們的編號(下標)

pata1091 注意t的作用

pat第九章

難題佇列

9.2二叉樹的遍歷(1月15日)

熟練寫模版

9.3樹的遍歷(1月15日)

前五題均1a

9.4二叉查詢樹(1月16日)

三題均1a

9.5平衡二叉樹(1月16日)

熟記模板

9.6並查集(1月17日)

1a9.7堆(1月17日)

9.8哈夫曼樹(1月17日)

pat第十章

難題佇列

a1018

10.1圖的定義和相關術語(1月17日)

10.2圖的儲存(1月17日)

10.3圖的遍歷(1月17日)

10.4最短路徑(1月19日)

dijkstra

bellman-ford

spfa

a1018 審題,在運輸過程中都要調整每經過的車站

pat第十一章

動態規劃(1月21日-1月22日)

pat第十三章

13.1分塊思想(1月22日)

13.2樹狀陣列(1月22日)

統計序列中在元素左邊比該元素小的個數。

13.3快樂模擬(1月23日)

a1017 23分,最後乙個測試點通不過

1月24日-1月28日 完成1108~1139題目。

第一輪訓練總結

第一輪訓練結束,自己完成的不太好,20道題到目前只做了17道,還有1664,1011,1050沒過。不過這三天收穫也是蠻多的,因和學長毗鄰,可謂近水樓台先得月,我從他們那裡學到了許多好的方法,請教也比較容易,不用通過網路,直接跨越時空,一擺頭就可以問了,嘻嘻,pku的題味道的確不一般,比較幹,水題很...

暑假集訓第一輪總結

被逼寫集訓總結 這次的集訓的日期是7.15 7.25 貌似沒有幾天,這該怎麼寫。進入正題。這次集訓的收穫還是很大的,發現自己變菜了。發現在某谷上的刷題量增加了,並且做的大多是一些藍題和紫題,但是感覺刷題量還是不夠。這次集訓學習 複習了很多的演算法,列舉如下 最短路 樹搜尋其他 longleftarr...

第一輪播報

做為網管員,可能大家感受最深的就是近兩年網管類圖書非常多,選擇餘地非常大,而且都是以套書的形式出現的。在 2004 年前,要選擇一套比較適合自己的書的話,只能是四處挑選,東拼西湊。但無論如何都選不好一套最經濟,最實用的書,因為許多書都有重複之處。而且因為都是單本圖書,沒系統性可言。現在好了,自我在 ...