1. 程式人生 > >CQOI2016遊記

CQOI2016遊記

環境 codevs number tracking 暴力 fad function 和數 long long

前情提要:我是絲薄,noip405的絲薄,所以這次省選特別虛
day0
上午隨便切了兩個題。背了下版。
下午看考場,環境還好。鍵盤也不錯。評測姬非常好,就是人和人之間有點近,我回去買了耳塞(盡管並沒實用上
晚上回去一邊看板一邊糾結,想自己萬一進不了隊怎麽辦,熬到十一點過最終睡了。我心態果然還是不夠好啊,應該什麽都不想的。
day1
上午六點半就起來了,七點到學校。開車過去七點四十就到了重郵。


然後老師們講了下比賽的註意事項,竟然要多存盤以防別人關錯電腦233
然後就開始考試了。
一開始考試我就驚了,T1裸的分治最小割啊,T3數位DP。我一定能想出來。T2倒是沒什麽思路。可是暴力有30分!

媽媽我省選一場能拿230。。
然後我花40分鐘默寫了一下分治最小割。然後我花25分鐘寫了寫數位DP,然後還有三個多小時。實在是太爽了。這個數位DP還是比較好想的。然後我開始想T2,這個k遠點對怎麽搞呢?答案在凸包上面?顯然是錯的啊。所以卡殼不行了。K-D樹?也是能夠找最遠的,不依賴凸包。可是第k個怎麽做啊。

然後我又腦洞了一下分治,還是沒什麽思路。

僅僅好寫了個暴力。
然後我開始對拍我的T1T3,然後發現T3的答案增長得非常慢,然後就細致看程序。發現有個中間變量忘開long long了,然後改了之後就正常了。也是運氣好,要不然這題就爆炸了。
有驚無險地拍完後面兩題,然後我檢查了一下文件名稱,數組大小。把I64d改成了lld,然後忐忑不安地等了2分鐘。然後交了。
上午精神還不錯,下午整個人就頹了(感覺身體被掏空
晚上看了下數學和數據結構的板,然後沒看trie(flag
糾結到11點過。最終睡了
day2
上午六點半就起來了。七點到學校,開車過去七點四十就到了重郵。(怎麽一樣的
玩了一會然後就開始考試了。
第一題我一看,RSA嗎?直接上pollard_rho模擬一下就A了。
第二題我一看,哎呦我去,題目真長。等會看。
第三題我一看。出題人怎麽這麽喜歡第k大啊,算了感覺還能夠想的樣子。


然後我開始模擬第一題,隨便寫了個板。然後過了例子。

我就放了,等下對拍。
然後我開始想第三題,感覺有點DP的味道。可是不知道怎麽搞。然後我開始慫了,想先寫個搜索放放。然後安慰自己:省選390也能夠進隊啊(flag
然後我寫完最naive的搜索以後我發現了。要把128內的質數打出來。隨便搞搞這個搞出來這個質數最多能被選多少次,然後枚舉一個要選擇的最大的質數,這樣就能夠枚舉這個質數被選次數內的比這個質數小的全部質數了。

就是個集合的無序拆分。
寫完後發現僅僅能過10^14左右的數據。10^18的偽光滑數有1.2億個。非常不好搞。
然後我跑去看第二題了,由於題目描寫敘述一開始不清楚所以我沒想出來,後面更正了題意後還是沒想出來,無奈又寫了個30分暴力。
回來看第三題,如今時間還非常充足。我又想到,10^14的第800000個偽光滑數一定比10^15的第800000個偽光滑數小,這樣如果我們知道10^14的第800000個偽光滑數。這個數能夠拿來剪枝,然後10^15的第800000個偽光滑數算起來就非常快了,能夠拿去剪10^16的第800000個偽光滑數,這題就做完了。
然後我又有230辣!

當時我認為自己穩了(flag
畢竟CQ是弱省啊,在我看來省選460已經非常高了。
然後就是慣例地檢查了。
然後等成績。聽說巴蜀的AK了兩個。然後我就慌了,認為460這個分並不高。無心吃東西。反正發呆。最終等來了成績,我壓線進隊了,可是geng4512由於數組開大了MLE了所以掛了。這樣我們學校有3個進隊。

感覺自己進隊了盡管開心,可是geng4512掛了也非常可惜,所以也就沒那麽開心了。並且自己也是壓線進隊,有450分。day1T1不知道為什麽寫掛了一個點。然後就是心有余悸了。要是寫掛得多一點,或者我DAY1T3沒檢查出來,或者我DAY2T3沒想出剪枝。我就掛了。主要是noip太渣了,md鬥地主,md跳房子。
後來回憶我省選寫了啥,寫了三個模板三個搜索,真是毫無技術性可言啊。bless all.
然後我來口胡一下每一個題的題解吧。題目和數據以後再補。今天先睡覺了
day1
t1 不同的最小割
分治+最小割 參見ZJOI不知道哪一年(2011?

最小割
或者你會GH TREE能夠直接敲板子
據說數據非常水。暴力最大流80分
t2 k遠點對
堆+凸包+分治+kdtree(我並不會不要問我去問claris
不要用卡殼和三分做。數據非常水,所以有人AC,然而這是能夠卡掉的(我並不會卡不要問我去問claris
t3 電話號碼
數位dp,設過程dfs(pos,p,f4,f8,flag,lim,zero)表示dp到pos(從低到高dp),上一個數字是p。是否有4,是否有8,是否有連續的三個一樣的數,是否取滿,是否有前導零的狀態。

然後當pos=0的時候返回flag,否則按情況轉移。


day2
t1 密鑰破解
用pollard_rho把N分解成p,q,然後算r,然後exgcd算d,然後高速冪算答案
t2 路由表
可持久化trie或者trie上的dp(然而我太絲薄並不會
t3 偽光滑數
可並堆+dp(然而我太絲薄並不會
或者打閾值表剪枝搜索
題目在bzoj上能夠交。沒有題面,題面在uoj群或者codevs群看。

CQOI2016遊記