1. 程式人生 > >JSOI2018冬令營遊記&總結(遷移自洛谷博客)

JSOI2018冬令營遊記&總結(遷移自洛谷博客)

這一 朋友 二進制 比較 樹形dp 基本上 莫比烏斯 好玩 每一個

遊記

一開始在冬令營還沒開始的時候,十分期待,殊不知每天都有一場浩劫在等著我。

Day0

10:50出發,看見lbn同學發了一條說說,也隨便發了一個。

然後在車上一直在睡覺,現在感覺挺後悔的,其實可以好好預習預習的,也不至於後面每天上午聽得半懵半懂,下午實戰天天掛。

yy和zcr他們在車上一直在玩遊戲,吵得人心神不寧,不過他們也難得能那麽浪了,畢竟每年也只就兩次了。

晚上莫名其妙地就去代表開明去領取校團體獎。然後就是一場跟去年一模一樣的講座。

Day1

早上調鬧鐘5:30醒來,結果又在床上賴到了5:50才起來。然後趕緊去刷牙洗臉,全用冷水,讓自己充分清醒。幹完以後6:20,趕緊去食堂吃飯。

到了教室,遇到了夏令營的老朋友,就在旁邊坐下了。寫了一點作業。到了7:50,看見yy和zcr三個人才來,還不知道又睡到了幾點。這些人,真不知道是怎麽給初一初二當學長的,天天打遊戲,睡到七點多鐘...

然後由蔣炎巖老師來給我們講課,ppt名字叫“好玩的字符串”。一開始是講半節課的自動機,還是比較能聽懂的。然後開始講KMP,這個也沒啥問題。然後期待他能開始講AC自動機,結果AC自動機被三句話帶過。。。下面就是一大堆題目,倒也還能聽懂,因此第一天的課還是能聽懂的。

下午就是我們的第一次實戰。

看到T1,可以一眼看出這個是考組合數的。幾個組合數的式子很明顯,如果沒有取模的話,完全可以做到O(K)的。然後這個除法取模,由於我見識淺薄,並不會。好吧,寫一個O(nk)的騙點分吧。

T2題目不難,但是實現起來感覺挺煩的,於是直接放棄了。T3直接寫了一個最暴力的暴力,其實稍微好一點的暴力也不難想,沒想到還是很不應該的。

於是就這樣很遺憾地30+0+30=60,低得可怕。下午聽說BCD班那麽多同學ak了,深感自己不行。晚上回來看了一下題解,T1的取模竟然是逆元相關,趕緊學了一下,又長見識了。晚上寫出了T2。T3是“大根笛卡爾樹”,還是決定回去以後再學吧。

Day2

上午基本上跟昨天一樣的感受,能聽懂。

下午的題目因為太粗心,T1的有個變量沒有賦初值,T2因為自作聰明"為保險起見",把循環次數開大一倍,然後就這樣超時了。於是30+60+0=90,其實T1T2完全有能力AC的。T3暴力都沒寫對,實在不應該。

Day3

上午也還行,聽得也不錯。

下午的實戰更加悲壯了。T1用了一大堆數據結構笨拙地維護,只騙到了40分。T2想到了樹形dp,但是不敢寫,感覺有點不大對勁。T3的話還是很簡單的,但我竟然沒做出了太不應該了。

Day4

上午的網絡流。講課老師一開始認為我們“已經有了充分的網絡流基礎”,於是前面的基礎部分10s一張幻燈片的速度跑過,後來發現我們很不行,就有重頭開始講。但由於老師備課是按照“有基礎”的思路備的,所以講的也不大聽懂。還好我之間看過一些,但後面講費用流的時候還是不大聽懂,看來回去以後還是要好好看看。後半節課基本上是講題目。一開始老師講,下面同學一臉懵,老師可能也感覺到了,於是下面就出現了,一道題老師給我們看25分鐘,講5分鐘的尷尬局面,後面的同學有不少開始自己幹自己事情了。

下午的實戰,第一題一開始對著小數據看規律,後來幹脆用excel把n<=10的情況全畫出來了,後來坐我左邊的一個常州同學“自覺地”湊過來和我一起研究,最後一起發現了圖形上的規律。其實完全可以對於4以後的幾項,直接看數上的規律———它們的差的差相等。而這個規律在前4項上是不存在的,這也是這題坑的地方。然後T3的話一開始打算用二進制來存,但發現這樣搞跟暴力幾乎沒有區別。然後突然想到可以建上15棵線段樹,非常簡單地就可以把這題做出來了。於是100+0+100=200,也還說的過去。

Day5

隨後就是我們的積性函數和莫比烏斯反演,一開始聽得還是能懂得,但後來聽得就有點跟不上了,也不是不懂,就是思維總是比老師講的慢幾拍。

下午的實戰更可憐了。第一題暴力結果盡然能過,原來是老師把數據弄錯了。T2題目就沒看懂,於是就沒寫。T3感覺應該是某種自動機,但由於自動機類的東西我還沒寫過,於是就寫了暴力。

Day6

上午的概率和期望聽得不錯,但下午實戰就徹底掛了。T1的dp其實是非常簡單的,但是最後題目讓我把答案對某個數取逆元,只能放棄。T2一開始感覺是遞推,但後來發現這個遞推式是無限的,又忘了可以通過一些運算轉為有限,所以只能放棄。T3的根本方向搞反了。其實應該把一個點從下往上推,其實從上往下也能做但比較麻煩,就寫出了一大堆bug。

Day7

上午就是計算幾何基礎了,結果一大堆的式子與方程把我繞得暈乎乎的,只能回去以後慢慢推了。

下午就回去了,在車上看了一會兒AC自動機,結果看睡著了。又被lbn在服務站喊醒,回來接著睡。畢竟這幾天每天接近12點才睡,5:30就起來了,還是很困的唉。

總結

說實話上面的遊記可以當廢話看,總結才是最重要的。

這一次冬令營報了A層次,雖然在那裏受盡神們的折磨,但我並不後悔。因為這一次冬令營告訴我,我存在著什麽問題。如果單單只是以現在的狀態和水平,去參加以後的考試的話,一定不會有好的結果的。同時,也讓我見識到了外面學校的同學,是有多麽強。

現在的水平與能力肯定還是不足以應對提高組的比賽的。算法與數據結構的積累只是一個方面,更重要的還是在已學過的算法裏面的思維能力。能夠想出正解才是真本事,學的東西再多不會用,那也只是紙上談兵。

每天上午的聽課,有的時候聽不太懂,肯定是有原因的。有的時候可能會因為稍不留神錯過了一點東西,而這恰恰是後面很重要的。或者是自己的思維與理解沒有跟上老師的節奏,或是不能充分理解老師講的每一個字。這些種種原因都有可能會給我的以後的學習帶來一些困擾,所以都要努力克服。

下午實戰的時候,經常不能拿到讓自己滿意的成績。主要歸結下來也還是這幾點:

  1. 自己思考出了正確的解法,但是寫出了問題。或者可以說,是自己寫代碼時候粗心所致,其實通過對拍等一系列手段完全是可以避免的。但是每天實戰的時候,其他題目都還沒有寫就去對拍這一題,一直讓我舍不得,所以沒去對拍;或是實戰的時候,看見那麽多題不會寫,受到了心理創傷,心裏煩,不想對拍了。也有的是因為自己自以為是,擅自篡改數據範圍,導致的超時等原因。
  2. 自己完全可以思考出正解,但沒有思考出來。一方面是自己水平不夠,不能對題目進行很深入的分析,透過題目的本身和出題人進行思想交流;另一方面,是自己平時經驗不夠,不能根據平時的經驗給自己以一些提示。當然,上一點所說的心裏煩亂的原因也是有的。但這裏“水平不夠”還是最主要的原因啊。
  3. 自己確實沒有學過相關的算法。這樣的問題,我還是需要通過廣泛地學習來彌補自己的缺陷了。但是,這一個原因還是只占很少部分的,並不是主要原因。
  4. 想出的是錯誤的算法。這個歸根到底還是屬於第二條的原因了。還有的還是因為思維不夠嚴謹,那麽思路就很容易出漏洞。

經過上面的分析,其實關鍵詞還是在“水平”和“嚴謹”兩個詞上面。水平問題,其實還是通過做題目,以及多加思考,訓練思維,才能彌補自己能力水平與思維上的缺陷,這是我目前面臨的一個主要的大問題。還有的就是嚴謹上面的問題了。嚴謹可以是思維嚴謹,也可以是代碼嚴謹,沒有寫出不該寫出的bug,白白失去那麽多的分。嚴謹的這個問題可以說從初一開始就在困擾我,一直到現在都還沒有解決。看來這是一個任重道遠的過程了。我們的嚴謹主要就是能夠不出不該出的錯誤,在出錯以後,能夠立即發現並改過來,使自己最後的程序是沒有錯誤的。

因此,下一階段的任務,主要還是著力於這兩個方面上。我相信,只有通過我每天都認認真真的學算法,做題目,才能解決目前的這兩個主要問題。我願意為這付出我所有的時間和絕對的努力。

JSOI2018冬令營遊記&總結(遷移自洛谷博客)