九省聯考2018遊記

2021-08-18 10:53:14 字數 1737 閱讀 4873

day0

上午到學校,去tututu寢室,入坑荒野求生,真tm好玩(雖然只打了一把)

下午坐高鐵去sh,發現sh非正式選手只有hez的。

day1

開局看t1,沒意識到狀態數是個組合數,於是寫了個程式算狀態數,還寫掛了

#include

int n=10,m=10,f[15][15],i,j,k;

int main()

然後就雜湊表的陣列開小掛成80(居然只掛成80)

本來gen了大資料沒re,以為穩了。要是本機是linux就會報錯,我就會發現問題,然而本機是win,辣雞windows毀我青春。

t2寫了發錯誤貪心,還自信滿滿,拍都沒拍。

於是9:20左右開始幹t3。

一開始寫了發n^2k,wa了,死活調不出,心態有點小崩,棄療去寫n^3,還是調不出。

突然靈機一動,把n^2k**改了下,就過完兩個樣例了。

最後時間一直在卡常,大力迴圈展開,7.1s->5.5s,效果不是很明顯。

出來後得知t2貪心被hack了。

最後day1總分80+55+65=200,居然比noip2017day2我的得分還高(那day2得分是不是比noip2017day1我的270還高呢?)

好像200在hez排不進前十,但在sh有rk4?有點驚訝啊。

day2

day1的電腦gg了,換到左邊的一台。

開場花了十幾分鐘讀完三道題,發現鍵盤手感很差,試圖跟右邊電腦的鍵盤換一下,無果。

冷靜分析了一下t1,感覺可以二分+網路流,應該是o(

t∗n∗

(nc+

m)∗(

logn

+log

m),9點時寫完,調到9點半多才過第乙個小樣例,然後就過完了所有四個樣例。造了發極限資料,300ms+,應該不會tle吧。

仔細觀察了下t2,感覺就是選k+1條點不交的鏈,使得總長最大,應該可以nk^2,但不知跑不跑得過k=100,3e9在7so2面前還是挺慫的。

再看t3,冷靜分析了一波,感覺如果是三種合法情況的第二種,l的位置對答案的貢獻應該是關於出現位置的分段一次函式?隨便來個資料結構在sam parent樹上合併就行了吧。而剩下兩種情況都可以o(1)計算(那我是不是可以乾掉這題呢?)

花了點時間想了下細節,在11:15決定開碼,12:20碼完了4.3k**,離考試結束還剩10分鐘,樣例輸出」2 -2」(實際應該」5 1」)

然後就滾大粗了。

後來得知自己0+10+5,t1 ce了,memset沒加#include,考場裡本機居然還能過編譯(更可氣的是,#include本機ce,把我害死)

然而我加上標頭檔案後還是爆零,有句話在外面,放進去就ac了。

幸好不是自己省選,下次再也不輕易寫正解了,多出來的時間不如用來檢查,上次zjoi round1那種打法沒gg純粹是運氣好,像這次,寫題寫到死,就真的掛了。

upd:現在t3調完了,大概花了1個多小時,思路還算是清晰的(不然我也不會敢寫了),純粹是細節多。考場上以為線段樹合併或其他平衡樹合併不能維護每個數與前驅的乘積,要麼多log,只能splay啟發式合併 我才不會告訴你我以前從沒寫過splay維護權值,只會用splay維護序列和幹lct,真是*****。

一開始query完忘記splay,t成45,改完後本地用時大概是std的1/3,目前loj最快。講道理splay常數那麼大,我也不知道我怎麼做到比線段樹合併還快的。

九省聯考 2018

發現狀態數很少,直接搜即可。不難發現這個偏序關係形成了一棵樹。本來以為直接貪心即可,即把 a 排序,然後 dfs bfs 一遍直接安排權值,類似於這樣 void dfs1 int u void dfs2 int u 不出我所料,這份簡單的 沒有過,被這組資料叉掉了 2 2.0 1 1 1 2發現這樣...

2018九省聯考墊底記

果然滾粗了,gg。考場在南理工,提前2個小時就到了。拿了hlt的電腦打 lct 然後1a,感覺自己棒棒的。看到一堆人在奶tjw,感覺那些人都太神了。沒有試機題,看到一堆神犇。最大流寫掛了,回家才調對。和cr互奶。自信200分很輕鬆 早上到考場看座位號,居然和陳神和喬神乙個考場 orz 8 00準時發...

九省聯考 2018 秘密襲擊

題意 給定一顆含 n 個結點的樹,每個點有點權 d i 求所有聯通塊中第 k 大之和。1 leq n,m,k leq 1666,1 leq d i leq m 時間限制 5 秒。題解一道很有趣的題目。做法簡述 由於 dp 為卷積形式對其多項式求點值,並通過類似整體 dp 的方式維護變換,再通過拉格朗...