在開始之前先摘寫一句話:二進位制是世界上最好的語言
總的來說,這次的集訓的收穫非常大。首先認識了一些集訓隊裡非常厲害的學長學姐和一起參加集訓的隊友。只有身邊都是優秀的人才會促使自己變的優秀。
集訓前已經學習的演算法:列舉->遞迴->二分演算法->分治->dp->dfs->bfs->貪心
這個假期的學習路線(感謝lxz學長和hlq學姐拉的專題):基礎dp練習(一點都不基礎。。。)->線段樹->kmp&拓展kmp&manacher->字典樹&ac自動機(這可不是寫了就能自動幫你ac的)->狀壓dp->數字dp->區間dp->二分圖匹配->強連通。(自己額外還學了並查集, 所有的stl容器的用法, 各種快速冪,陣列離散化,還有題目中的各種模板,結論)
我覺得這個暑假我收穫最大的是:學會了自學。開始感覺特別的難,不知道別人的部落格都在寫什麼(有的部落格的確寫的很不好理解),後來找到一些好的部落格就慢慢的沿著別人的思路,自己在紙上一步一步的推導。就看懂了別人的**。自己再按思路寫乙個模板出來。就會感覺原來如此。基本上,做幾道模板題就開下乙個演算法專題了,所以專題上拉的題都沒有怎麼做。導致對相應演算法的理解不深,這個有時間了,一定要全部重新刷過,而且每補一道題,如果遇到一些新穎的思維或是不知道的結論一定要寫部落格,就當是錯題集,如果以後遇到類似的問題,就可以用相應的結論和思維。
集訓結束後,我感覺還有好多的演算法沒有學。而且又感覺組合數學和數論在杭電多校裡經常出現,我就準備去把莫比烏斯反演學了,然後莫比烏斯反演中涉及尤拉函式了。又去學習尤拉函式,然後尤拉函式中涉及線性篩了,又去學習了線性篩,然後線性篩中遇到了他的兄弟杜教篩,洲閣篩而且線性篩中涉及積性函式了。嗯,先學積性函式吧。。。。。。。。。等我學完這些, 我又迷茫了,因為沒有學習的演算法實在太多了。也不知道該從哪開始,而且常出題的是哪些演算法,畢竟區域賽又在11月。。。。。想先把常用的學了,多刷題熟練掌握這些模板的各種變形。
正好,程老師前幾天開了個暑假集訓的總結會,cds學長給我們接下來的學習指明了方向。(感謝cds學長超細心的給我們總結學習路線)
入門演算法:
①stl容器( 往下翻,queue,stack,string,vector,map等)這個可能因為太重要了當時我忘說了,理論上這個是一切演算法的前提
②線段樹
③kmp(字串處理基礎問題,這個要多刷找感覺)
④基礎動態規劃
⑤貪心,模擬,c語言基礎題(codeforces div2 ab題)
⑥最小生成樹、最短路、並查集
理論上只要會上面的,熟練一點穩一點就銅了(cds學長說的熟練一點可能是指:每個演算法最少訓練100道???,穩一點可能是指:遇到相應演算法的題一定要ac???)
基礎演算法:
①較難的dp(區間dp,滾動陣列優化,斜率dp,簡單的狀壓)
②各種位運算(異或,或,且,左移右移以及他們的性質,特別是異或!)
③二分匹配
④基礎數論(質數篩、一些簡單的概率計算,高中之前的數學定理)
⑤計算幾何(向量叉積,計算多邊形面積等,判斷兩直線相交、圓)
⑥樹(dfs序、lca等)
⑦強聯通分量(這個很重要,有向圖基礎)
⑧字典樹、manacher
掌握這些之後,基本上就穩了,接下來就是刷題,找到感覺,積累經驗,說不准運氣好就是銀牌了(cds學長說的運氣好可能是指:比賽中的題,都是你做過的題的變形???)
高階:①網路流(最大流、最小費用最大流)
②線性代數(只需要掌握矩陣求秩、矩陣乘法,難點主要在如果將問題轉化成矩陣乘法!)
③中等數論(尤拉降冪、尤拉函式、費馬小定理、lucas、中國剩餘定理)
④組合數學(小球與盒子系列各種這型別的計數問題)
⑤字尾陣列、ac自動機、fail樹
⑥樹的各種問題(樹鏈剖分、樹分治等)
⑦分治、分塊、莫隊(cdq分治、一些神一般的套路)
⑧可持久化線段樹
應該是有漏的,比如bfs、dfs,這個你們在學習過程中肯定都能知道的
高階演算法可以慢慢學(半個月乙個啥的)不急,主要是基礎,不知道這些全部都熟練能有多強,你都搞定cf應該已經紫名了吧(cf:codeforces)
難:①有限制的網路流(最小費用可行流、帶上下界的網路流、zkw、分層)
②高等數論(fft、ntt、母函式、莫比烏斯反演、min_25篩、polay定理等)
③舞蹈鏈
④高難度集合(半平面交、多維向量空間)
⑤隨機(模擬退火等)
⑥可持久化平衡樹
⑦快速沃爾什fwt、各種**題
⑧散了吧。。。。
可以偷偷學乙個,用來創造奇蹟
當然cds學長也給我們說了很多比賽的小技巧(但我感覺這次比賽出現了,以後再也不會出現了)和一些很好的刷題方法。
遇到一些實在不會的題就先放一放,說明自己的水平還達不到這個題的水平,(有的題,就算讓你看題解,你要看懂可能要幾小時,幾天,甚至更久)
學習演算法主要以線段樹, kmp, dfs, bfs, 最短路, 最小生成樹為基礎再向外擴充套件。
stl, 位運算,逆元,線段樹是競賽的「加減乘除」,也就是基礎中的基礎,並且是競賽中最常用到的東西。
acm沒有考察範圍,一切的科學到盡頭都是數學,上面的很多數學知識就算是數學專業的也要上研究生才學,而且題目經常涉及組合數學,數論,博弈論。。。。,上次在多校群裡看到一位大佬說:我隊友說這道題有結論,他之前在《具體數學》哪一章看見過
我:具體數學???
記憶最深的還是cds學長說快速傅利葉變換,說自己現在都還不會(我感覺他可能會一點),基本上省內的acmer應該沒有會的(畢竟就乙個傅利葉變換就撐起了整個通訊業)
說上面這些話既是自勉,也是為後來者指明道路,讓你們明白這條路很苦。很累。但也很充實。codeforces比賽經常在0點左右,我和nyx,dyw,crz經常拿著電腦去自習室打,一起上分(經常掉分),兩點鐘打完再回去,舍友已經睡熟了。輕手輕腳的**,睡覺。玩acm可以讓你認識一群跟你一樣有夢想的人,一起學習,打比賽。
還有希望cds, zy, ykc學長他們今年能夠在icpc拿金,也是省內首金。畢竟他們在上次省賽拿了第一名,實力肯定是有的。 而且他們打完這場icpc也要退役了。
15的學長退役後,明年就該我們和16級的學長學姐打現場賽的名額了。
一起加油吧!
暑假訓練總結 SSL暑假訓練總結
第一周過的還算好吧,覺得飯堂伙食也挺好的,同學也挺好。學習的東西感覺比小學難好多,有種覺得以前學的東西太簡單了的感覺,但多虧了小學的時候基礎打得還算紮實,學得還行,但總是感覺自己就是個菜雞,就是乙個蒟蒻,哎,室友真的太強了。第一周總結 第二週自我感覺挺不錯的,總算追上了部分室友,成績也開始 這一切都...
暑假訓練總結
社會實踐調查報告 題目 關於暑假acm訓練的實踐與總結 專業班級 數學與應用數學專業1班 姓名 李雙智 學號 20164249 2017年8 月25日 摘要 31.樹狀陣列和圖論 42.二分三分以及單調佇列 53.樹狀陣列與單調佇列 54.總結6 摘要 本文主要總結了這個暑假acm實踐的主要內容,以...
暑假訓練總結
這一暑假的訓練結束了,感覺自己仍然是一條鹹魚.一暑假的訓練不僅回顧了之前的知識,還學習了新的知識。首先是複習了搜尋的知識,個人感覺搜尋的題目一般 都比較長 也許是自己寫的太囉嗦,廢 太多.而有時候往往在一些不經意的地方而出錯,所以搜尋的題目一般要仔細的把握,不能在一些地方潦草而過,往往會在下面就卡住...