21清北學堂騰飛營遊記
7.15
明明是第一天,理論上可以減小力度,可是 lxl 不會這麼想。
上午講的是線段樹、樹狀陣列的高難度應用,還有許多 tricks (比如倍增分塊、掃描線將二維靜態問題轉化為一維動態問題,ODT 珂朵莉樹等),很多題我只是聽明白了思路,可是程式碼卻不會寫。這告訴了我程式碼能力的重要性,在學習的時候,不能僅僅停留在口胡的階段,必須踏踏實實寫程式碼練能力。
下午就簡單多了,二叉堆,並查集,trie,hash,rmq,lca,stl,多虧了 djh123 和 Smeow 在機房給我補習,我才能夠順利地結課。在做題技巧方面,我理解了樹上差分的一般形式和應用,現在能夠使用資料結構維護一些問題,能夠使用 lca 等樹上演算法完成一部分樹上問題。
今天留下的疑惑主要在於線段樹的高階應用、set 高階使用及其練習題。
今日達成成就:五題斬。
學完這一天的課程,我心中只有五個字外加一句話。五個字是“ lxlNB ”,一句話是“ 革命尚未成功,同志仍需努力 ”!
7.16
好耶!轉眼間來到了第二天!
上午依舊是 lxl 主講,lxl 老師講解了他的傳統藝能——大分塊的講解。眾所周知 lxl 是國內根號資料結構的王,所以 lxl 講起根號資料結構(分塊演算法、莫隊演算法)頭頭是道,當然在基礎知識方面簡潔易懂。但是做起題來還是稍顯吃力,究其原因一是碼力不足,二是新知識比較生疏,這就需要在後面的時間多加練習,才能夠真正理解這些知識。
下午比賽,zzy 老師出題,4h4題,本人 173 位居 rk4.這次比賽也暴露了我的一些問題,主要集中在 T3,明明想到部分分做法,可是沒有選擇正確的方式來維護(其實就差一點)。(話說本來也沒人得分ww。)
今日達成成就:人生第二桶金——無線滑鼠!
7.17
第三天,如今我們的老師換成了隨和幽默的 zzy 老師,講解動態規劃專項知識。
上午約等於入門,所以只講解了四道例題,三綠一藍,我這輩子外出培訓都沒這種全聽懂了的體驗,所以很容易地一上午就寫完了這四道題。
下午講課速度和難度逐漸開始增加,尤其是數位dp和狀壓dp這兩個難點處的題目聽起來比較吃力。不過聽完之後,我感覺我的思路擴充套件了,對於"狀態壓縮"的理解上升到了新的高度。當然該有不懂的地方還是有的,通過自己閱讀題解,我終於搞懂了題目。
zzy 老師的一個特點就是喜歡嘮嗑拓展知識,例如上午的 k 叉堆。同時,他關於 OI 刷題、複習方面的指導令我受益匪淺。聽完之後我感覺我好想終於懂了怎麼學習OI。
今晚有老師開的小會,看看同學們都生龍活虎的,我不由得感嘆:
被吊打一時爽,一直被吊打一直爽,爽在水平進步上才是真 OIer !
7.18
上午是 zzy 老師的最後一節 DP 課堂。主要講解的是數位DP、計數DP和樹形DP,同時講解了笛卡爾樹、子序列自動機等常見模型。可惜有許多我沒學過的知識(同時也有若干人不會)被老師看做已經會的知識,所以常常自閉。不過好在老師一看我們都不會,就又給我們講解了一遍,才不至於留下疑問。
下午是 cjk 老師的第一節圖論課。老師先帶我們複習了一些基礎圖論知識(好評)。隨後開始了一波紫黑題的轟炸。不過 cjk 老師講課的一大優點是他從最基本的暴力講起,一步一步優化。同時他經常找同學起來回答問題,所以新思路層出不窮,拓寬了我的眼界。可惜最後拖了十幾分鐘的課。
晚自習也被 cjk 老師佔去了近 1h ,又講了幾道題目,所以導致我做題數減少了(悲)。
同時今天的新上課方式是:不發課件。所以我對於題目的思考更深了,不過似乎僅限圖論是這樣的。
今天最大的成就就是做出了一道黑題!
7.19
今天是 cjk 老師講解圖論的第二天。上午主要講了 2-SAT 模型和網路流相關知識。前者 djh 和 smeow 在機房裡給我預習過了,所以聽得比較明白。至於後者……
NOIP選手學網路流乾嘛 —— @Smeow
然後就講了。沒聽懂。於是我在晚自習的時候向老師請教了網路流的知識,現在已經通過模板題了。
下午老師主要講解的是一些圖論題目中的常見模型。例如不建圖、雙端佇列 bfs 求 01 最短路等 tricks。這些題目花樣很多,所以再一次讓我認識到了"題目是做不完的,只有學會思路才能解題"這件事。
晚自習的時候老師給我們介紹了一種隨機演算法,告訴我們"正確率高的隨機演算法是可以當正解”這件事。這倒是改變了我對隨機演算法的固有印象,所以以後要(提高 RP)多學一些可以用來代替正規思路的方法,這些方法可以節省時間,增加得分。
經過今天的調題之後,我只有一句話:不 開 long long 見 祖 宗 !
7.20
轉眼間,6天過去了,課程也進入了尾聲。
上午 hzk 老師講解了搜尋、分治、貪心等基礎演算法及其應用,雖然講解的題目難度評級都相對簡單,但是老師硬是講出了"這個題比原來難"的感覺。由於演算法本身性質,題目總體比較好理解。其中不乏一些我做過的題,通過老師的講解,我感覺我對這些題目有了更深的理解。
下午 hzk 老師講解了數論和博弈論。其中數論感謝 @djh123 的輔導,我竟然意外的聽懂了基礎數論題。隨後的數論和圖論結合題一度令我諤諤,好在老師看大多數同學都不懂就又講了一遍。
我講的你們聽不懂是正常的——hzk
晚上 hzk 老師給我們整了一個活:OI 非傳統題目選講,包括互動題、提答題和通訊題,並通過例題給我們介紹了在特殊題型中的套路和注意事項。
明天就是最後一天,同時也是結業測試的日子。在此用 hzk 老師的一句話祭旗:
我出的題是聯賽難度,部分分很足——hzk
7.21
比賽慘遭爆零,不過終於能回家了,好好休息一波,明天再做總結。
7.22總
七天時間轉瞬即逝, 我初四暑假的第一個夏令營很快結束了。回到萊州,感慨良多。
十四號到達濟南,車載導航提醒我們:“您已進入濟南市區。”向車外望去,高樓林立,車輛川流不息,我當時就有一種預感,這七天學習的知識量會像高樓一樣多,速度會像車輛一樣快。
入住賓館,領到了課表。第一眼,看來大部分知識 djh 和 smeow 都給講過了;第二眼,原來學的是高難度應用,那沒事了;第三眼,資料結構主講是 lxl ,危。
隨後,我就開始了長達七天的學習。首先是資料結構方面。雖然只是線段樹、樹狀陣列,但是 lxl 讓我在第一天上午就認識到了我對資料結構的認識是可悲的。資料結構也可以玩出各種花樣。再配合上高難度的題目和高速講課,第一天上午我幾乎暈在教室。幸虧老師比較仁慈,接下來對於堆、並查集、RMQ等的講解簡單了許多。然而第二天上午,分塊和根號資料結構又迎面潑了我一頭涼水。很顯然lxl在根號資料結構方面的造詣甚為高深,毒瘤分塊無與倫比。這部分本身就是我的弱項,所以聽完之後,一邊朦朦朧朧,一邊恍然大悟的說的就是我了。
第二天下午的考試是我整個學習過程中的高光時刻,在rfl和djh的提示下,我成功地拿到了班級第四名,開開心心地拿了個滑鼠。並且揚言要再拿一個獎品回家(flag)。這次考試成功地讓我拾起了信心,我對於後續DP的學習又有了學習的熱情。說到DP,zzy老師的課使我切實感受到了DP的魅力,他從最基礎的暴力講起,一步一步找狀態、列轉移。最後得出DP的完整程式,十分詳細。同樣,圖論主講cjk老師,先帶領我們複習基礎知識,然後再從基礎部分一點一點地解釋題目。在講題過程中,他不斷拓展新的思路,最後再跳出正解著重解釋。在他的課上,我真正理解了2-SAT模型,入門了網路流,學會了多種圖論的解題方法。
最後就是hzk老師的基礎演算法與數論課。基礎演算法方面無非是搜尋、貪心、分治,但是難度可並非基礎。在課餘時間,我通過打板子,對CDQ分治的理解更深了一層,對於離線操作的應用更加得心應手了。數論課本是我所懼怕的,但是經過了djh的輔導,我竟然能夠聽懂數論題了!這也是我成長的表現吧!很快就到了最後一天的考試。這份題目比上次難的多,所以我做得磕磕絆絆。可是,令人大跌眼鏡的是,這次比賽儘管在OJ上提交,可是依舊要加檔案輸入輸出,於是我爆零了(回收flag)。事後自測大概排在第12名左右,依舊無緣於獎品。至此,我基本上把所有正式考試中可能導致爆零的坑全部踩了一遍。
在這七天裡,我收穫的不僅有知識,還有一堆題目。我把這些題目全部收藏下來歸好了類別。接下來的日子,我需要把這些題目刷完並理解,才不負這七天的學習。另外,我感覺我的能力也有所提高。雖然現在腦中一些學過的東西蒙上了一層迷霧,想不真切,但是我相信經過鞏固,我一定能夠把這些知識轉化成自己的東西,加以應用,在今年的CSP和NOIP中取得理想的成績!
任何一個偉大的計劃,都有一個微不足道的開始