WC2016醬油記

這次WC2016真有趣啊!

第一課堂講的東西普遍偏難,很難保持跟上思路,於是就當了解來學了。

picks的多項式,太深奧了,接觸到了一些奇葩複雜度的算法。正統的有FFT,NTT,不過不好的是取模比較麻煩。有個karatsuba算法,N^1.585的複雜度,但是是基於分治實現的,可以很方便地取模。

然後有關於正規語言與自然語言處理的課。學了一下正則表達式,然後之後的都很難聽懂了,大致知道自然語言處理需要什麼詞向量,什麼奇怪的統計原理。

還有數據壓縮和熵,感覺那些數學公式好難。。大致感受了一下數據壓縮的過程,然後看到他的一階和二階壓縮和rar大法比較,發現rar大法真是太神啦。

然後還有ACM題目講解,感覺基本沒用到什麼噁心的數據結構,全是一些靠猜想之類的方法。大部分還是聽懂了。

還有IOI2015題目講解,講得略快,只聽懂了部分題。杜老師在最後關頭用卡常大法過了teams真是太神啦,32叉線段樹好厲害!但是我想了一會發現很難想到如何用位運算很快地找出前驅後繼,這樣的話在節點內部好像極端情況下需要O(32)的巨大常數時間來找前驅後繼?難道節點內部在開一個平衡樹來維護這個長度32的01串?這樣的話這個32叉線段樹好像還可以支持可持久化。

然後就是day5的考試。我之前好像聽說100+才能拿cu。第一題貌似爆搜+貪心+網絡流三個算法拼在一起可以得60分,然後我就愉快地碼了200行,想到第二題再拿40就能cu啦,我就急忙進入第二題。

然後發現第二題數據範圍真夠大的。。爆搜10分。。揹包也只有10分什麼鬼。。想不出來更優的解法啦。。然後就亂碼了個暴力比較字符串加裸揹包,進入第三題。

第三題交互題太噁心啦!他要維護一個運算符有不同優先級的表達式支持修改符號和數字,區間翻轉,還要求在線和可持久化。其中20分優先級相同且不要求持久化,這個可以裸spaly的區間翻轉、求和。還有10分優先級相同但是要可持久化,可以用分裂式treap。但是之前沒做過交互題,所以這次花了40+分鐘來揣摩這道題的題意和評分原理。最後覺得linux下不會對拍,並且交互題貌似沒法單步調試,於是不想碼那些數據結構了,亂寫了個大暴力得了5分(竟然編譯通過了!)。

最後一點時間由於不會在linux下對拍,於是發了差不多一個小時的神。最後T1爆零,狗牌滾粗。分數線好像是75au,50ag,20cu,我列個去誰給我說的100+才cu。。早知道是這種分數線那我T1就多檢查下了。由於沒有copy源程序,我揣測第一題應該是多組數據以及輸入輸出的問題。因爲之前很少寫拼盤程序,沒什麼經驗,寫出來太亂了,並且有些輸入是在主函數裏完成的,有些是在子程序中輸入的,輸出也是這樣,可能在多組數據下就出問題了。以後注意寫拼盤程序的經驗技巧,例如統一輸入輸出,不同子程序之間不要共用數組之類的。

之後還要學一下linux下的一些對拍技巧。

這次考試我的機子不知道什麼奇怪情況,我的guide調試時GDB給我顯示有什麼錯誤,調兩下就要卡死然後自動結束調試,弄得我根本沒法單步調試,以後遇到這種情況應該學習一下處理方法。

所以以後還是要見多識廣。要爭取做到在各種外部條件的情況下仍然能得到自己能力所及的分數。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章