前排感謝晴神大大,以及眾多大佬的幫助,讓我這個程式設計小白走上了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 年前,要選擇一套比較適合自己的書的話,只能是四處挑選,東拼西湊。但無論如何都選不好一套最經濟,最實用的書,因為許多書都有重複之處。而且因為都是單本圖書,沒系統性可言。現在好了,自我在 ...