OI暑假集训游记
莞中OI集訓游記
Written BY Jum Leon.
?
I
?????? 又是一載夏,本蒟蒻以特長生考入莞中,懷著忐忑的心情到了8月,是集訓之際。懷著對算法學習的向往心情被大佬暴虐的一絲恐懼來到了莞中。
? ? 這里真是個好地方啊,座居莞城中央,聚集四方靈氣。伙食好,我們學習自然好。(廖老師超級友好的
?
正文
II
感悟
????? 首先感覺在莞中學習真的十分幸運,這里學習的環境、氛圍都很好。我們可以互相幫助,互相幫忙講解不理解的題目,或是分享自己的方法。有廖老師帶我們飛(強,組織我們講解題目,重點難點廖老師會親自給我們講解。我覺得廖老師是一個很有耐心,很好的老師,他不僅僅幫我們細致的講課,在我們做題時遭遇困難時會親自幫忙講解,審查代碼,發現并且指出我們具體的學習上的錯誤,十分有利于我們對自己進一步的優化與學習。
?? 在莞中每天早出晚歸,覺得莞中的早餐大包特別好吃;清晨校門假山前的蓮花錦鯉好看;傍晚南區的天空云彩十分燦爛;三尺講臺上的廖老師十分友愛。
?
收獲
收獲如秋日果園中累累碩果般。有好幾方面的。
?? 首先是學習上的。對于提高組的題目,題型有了一個更加完全的了解。
鞏固了許多基礎的數據結構。棧,隊列,堆,鏈式前向星等數據結構。還有提高組十常用并且高效的并查集,哈希表等。還學習了C++特有的STL:動態vector數組,優先隊列,重定義運算符等。
除了數據結構,我們主要學習的就是算法了,重新熟悉了深搜,廣搜,在廣搜專題中學習了特殊廣搜題型的狀態壓縮,有關二進制的位運算,還有STL的queue應用,提高了我們對算法的認知。
學習并鞏固了許多學過和沒有學過的圖論算法,最基礎的最小生成樹開始,了解了Prim和Kruskal的算法工作原理,以及哪個適用于稠密圖,哪個適用于稀疏圖。
三種常見的最短路算法,Floyd,Dijkstra,SPFA。從單源點到多源點。在結合題目的練習中總結了最短路算法的應用,還有vector應用于鄰接鏈表的結構,在某些題目中單向邊和反向邊的應用。 用SPFA處理圖中負邊權和環的情況。
學習了堆的原理,操作和維護一個堆的方法,以及在最小生成樹Prim算法和單源最短路Dijkstra算法中如何用堆優化時間效率。學習了并查集的原理和并查集的優化方法,以及在最小生成樹Kruskal算法中應用并查集優化時間效率。還有拓撲思想和拓撲中的關鍵路徑。
動態規劃方面同樣收獲頗豐。從大量的題目中了解到了基礎的動態規劃算法的變形,如背包問題的變形,最大連續子序列和,最長不下降序列,最長公共子序列的變形。以及區間動態規劃的鞏固掌握,附加值動態規劃的預處理,還有樹形動態規劃的初步。
最后就是離散思想的空間優化和高效,還有初等數論的學習。
?
期許
這段時間是我學習OI的好機會,期望自己在高一的NOIP中拿到一等獎。對于集訓期間自己的表現滿意,每天認真的Coding,在不懂的地方找同學老師討論,理解透徹。對自己的期許就是在OI路上繼續走下去,參加各大比賽,GDOI、GDKOI等,提高自己的思維高度,學習更多的算法,不止步于聯賽。對于自己的許多不足,數論方面的薄弱,以及許多更高級數據結構,Splay,平衡二叉樹等還需繼續加油學習。
?
III
算法總結
注:超鏈接為內網鏈接,大部分的題可以在JoyOI或者洛谷等其他的OnlineJudge上找到
Day1:線性表
?????? 棧結構:先進后出。
?????? 習題:GZOI 1097 括號匹配的檢查(初等棧),GZOI 1098 表達式計算(個位數的運算式)(進階)。
?????? 高精度:原理特別簡單,模擬手工運算。把模板背熟也很OK啊。
?????? 習題:GZOI 1008 【高精度與數制轉換】求X的p次方(不知道算不算高精度)。
?????? 歸并排序:拆分再拆分,最后組合。效率挺高
習題:GZOI 3427求逆序對
卡特蘭數:遞推實現,有可能會有高精度。第N個卡特蘭數為
綜合習題:GZOI 2273 number序列
?
Day2:深搜基礎
?????? 深搜知識點:狀態的傳遞,DFS剪枝
?????? 習題(較水):GZOI 3429 營救 ,GZOI 1214 ?????? 排序集合
?????? 習題(進階):GZOI 1027 駕車旅游, GZOI 1208 關路燈
?
Day3:廣搜基礎
?????? 廣搜知識點:學會使用STL的queue
?????? 難點:廣搜結合狀態壓縮,位運算
?????? 習題(較水):GZOI 1056 倒水,GZOI 1058 翻硬幣
?????? 習題(進階):GZOI 1240 黑白棋游戲 (狀態壓縮&位運算),GZOI 2268 這不是錯誤,而是特點(搜的比較復雜)
?
Day4:哈希與廣搜
?????? 哈希知識點:%一個素數作為地址,將大化小,節省空間,查找效率高。
?????? 哈希模板題: Hash(理論基礎)
?????? 值得一做的題:GZOI 2182師生樹,GZOI 3730 馬步問題,GZOI 3494樹的最遠距離
?????? 毒瘤題:GZIO 1241 魔板
?
Day5:最小生成樹
?????? 最小生成樹知識點:
(掌握堆以及STL的優先隊列的用法)
值得一刷的題:GZOI 3250 高速公路,GZOI 3723 Arctic Network,GZOI 3546 Truck History,GZOI 3547 Building Roads。
?
Day6:堆與并查集基礎
?????? 堆知識點:堆排序:建立一個大根堆或者小根堆,將所有元素依次所有入隊并且Shiftdown,輸出時每次取堆頂元素,將堆底元素提到堆頂并且Shiftup。重復操作。
?? 并查集知識點:查找操作&優化:從當前節點出發到父親節點,將當前節點的父親賦值給經過的節點的父親。合并:將A和B合并,只需將B的根節點賦值給A的根節點的父親即可。(詳見GZOI 1520)
?? 習題(堆):GZOI 1502 促銷,GZOI 1503 序列和的前n小元素 。
?? 習題(并查集):GZOI 1520 家族(理論基礎)(模板題),GZOI 1521 銀河英雄傳說(noi2002)(毒瘤題)。
?
Day7:最短路
?????? 最短路基礎算法dijkstra, floyd, bellman-ford, spfa.
?? 關于最短路的題,要水的就很水,要難的也很毒瘤,但是A了以后就會感覺都是水題。
?? 模板題:GZOI 1043&1044 dijkstra& floyd。
?? 水題:GZOI 1454 哈利波特與魔法石,GZOI 1903 災后重建,GZOI 3257 母??鐧凇?/p>
?? 稍微不水的題:GZOI 2103 消息傳遞問題,GZOI 3630 Party,GZOI 3509 邀請卡片。
?? 值得一做的題:GZOI 3507 蟲洞(SPFA),GZOI 2202 佳佳的魔法藥水,GZOI 2277 時間與空間之旅。
?
Day8:拓撲排序與關鍵路徑
?? 拓撲知識點:在一個圖中將入度為0的點依次剔除,并且將與之相連的邊刪除。(模板在GZOI 2240)
?? 習題(普通拓撲):GZOI 2240 單挑排名(模板),GZOI 2281 煩人的幻燈片。
?? 習題(關鍵路徑):GZOI 3320 雜務,GZOI 2151 新校園
?
Day9:動態規劃初步
?? 知識點:背包問題,求最大連續子序列和,求最長不下降序列,求最長公共子序列。
?
Day10:經典動規問題
?? 知識點:基礎動態規劃的變形以及理解
Day11:動規加強
?? 知識點:區間DP,樹形DP初步。
?? 值得一做的題:GZOI 1084 糖果盒,GZOI 1088 郵局(IOI2000),GZOI 1089 多米諾骨牌(GDKOI2000),GZOI 1090 過橋問題(GDKOI2001),GZOI 1333 能量項鏈。
?? 值得一做的樹形DP:GZOI 2184 聚會的快樂
?
Day12:離散思想
?? 知識點:點坐標,位置的離散化。
?? 習題:GZOI 1562 矩形面積,GZOI 1561 幻燈片,GZOI 1563 Shaping Regions形成的區域,GZOI 1564 水塔水位。
?? 不怎么毒瘤的毒瘤題:GZOI 1504 輪廓線(洛谷上的數據有誤,我的代碼GZOI上15ms)
?
Day13:初等數論(蒟蒻最怕
?? 初等數論基礎知識,素數問題,容斥原理,勾股定理,同余定理,其它數論基礎。
?
Day14:完結撒花!!!
?
轉載于:https://www.cnblogs.com/SJum/p/9506398.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: Codeforces Round #50
- 下一篇: 多校1010 Taotao Picks