下飯體驗選手的搞笑記錄(
反正是體驗賽,就當玩一玩咯
Day 1
開題!發現 T1 大概是一眼題,似乎比較可做?開始思考貪心之類的東西,二分答案?雙指針? 最后想了想欽定最大值,最大化最小值似乎可以整一波,於是胡了一個看起來很真的帶悔貪心……
大概是欽定 \(a_i\) 最大,然后后面的只能全翻,前面每次試着翻最小的,如果翻了反而開倒車那就鎖死了。一開始沒想好用什么數據結構維護前面的東西,寫了個最萬能的 std::map,跑了 \(5\times 10^5\) 的大樣例要兩三秒,慢死了。發現可以 std::priority_queue,啪的一下就換掉了,很快啊,速度快了一半!在考場這樣的老爺機跑一秒多評測少爺機加 -O2 應該挺穩。(賽后聽說 scanf + std::sort \(10^6\) 個數就要 3s,那應該挺穩。)
不過 \(a_i\) 不一定最大,可能是 \(b_i\),然后我尋思這本質相同啊,把 \(a,b\) 交換一下,\(m\) 變成 \(n-m\),跑了一下過不去大樣例……過了幾分鍾我醒悟過來發現 \(a,b\) 的地位並不相同!也就是說我還要寫一個貪心,而且不一定可以貪……
一看時間:2 hours elapsed…… 草這時間咋過去的?!!這么長時間沒切簽到題?!於是開始胡思亂想,在紙上亂寫了半小時棄掉了,但這種分怎么能棄呢?小編也很驚訝,但事實就是這樣。於是最后也交了一個答案集合中最大值為 \(a\) 才能過了沙雕程序。不過在 \(n\) 小的時候搞了個數據分治,前 \(20\) pts 應該能保住。賽后又發現大樣例跟沒有一樣, FST 預定。
之后覺得自己更 sb 了:既然我的算法只能欽定 \(a\),那么為什么不寫欽定最小值?那只有答案集合里 \(b\) 同為最大最小值才會掛……
看了 T2,感覺非常亂搞或者非常高明就直接考慮騙分,然后騙了個寂寞,最后得到了 \(0\) pts 的好成績。我也不知道我當時怎么想的,出考場發現是差分約束人都嚇傻了。
T3?這種鬼畜圖論一看就是什么高明結論,一看就不會,花半個多小時寫完了 \(16\) pts 暴力。
出考場發現自己被打爆了,大概 \(50+0+16\)?如果數據和大樣例一樣水的話當然是能 A 掉 T1 的
Day1 都沒有套路題,賭一波 Day2 一道數據結構,一道字符串,一道數數。
希望 Day2 別那么炸
Day 2
沒賭上,字符串無了(悲),數數也沒了(狂喜)。
一開題,T1 好像可以點分治?大概先離線,將詢問根據分治中心拆成兩段,后半段可以二分答案,然后這樣一下,那樣一下,就做完啦!這么快搞出一個點分做法是因為之前 XJ 模擬賽 xza 放過一個 Spy Game,是這個題的嚴格加強,但是基本不可能寫的出來。不過這個題應該會好寫很多?不如試試,至少比暴力強。
於是我 5 分鍾就胡出了做法(指“這樣一下,那樣一下”),開始敲擊鍵盤……然而這只是毒瘤的開始。由於我很多細節沒有考慮好,寫的很屎,代碼里一共有六七個 DFS 函數,活活將代碼撐到了 250 行,最后兩個小時才寫完 /tuu。寫完了,還有調呢!於是又花了大把時間調試……沒插件的 VS Code 不能單步調試很難受,甚至一度打開 Dev-C++ 只為調試,然而並沒有實質性作用。
然后終於過了小樣例,順手過了中樣例,感覺中大獎了。然后大樣例……跑不出來了?看到輸出文件一片空白,我陷入了沉思。哦原來沒開棧,一測發現……為什么總是時不時不答案小一啊?!我百思不得其解,開始瞎改,東邊加個一,西邊加個 max,最后發現二分答案左邊界加一就過了,小編也很驚訝,但事實就是這樣。由於我偷懶在分治中放了個 std::map,大概是兩 \(\log\),實際上完全可以 \(O(n\log n+q\log m)\) 的,反正跑得快就扔了。
挑戰一小時寫 T2 T3……的暴力!最后只寫了 T2,原因是我過於慌張使得每 20 min 固定看錯一次題:啊要求的不是方案數是結果數啊?啊 \(b\) 單調不增的啊?所幸最后還是調出來了,大概是階乘級別的,不知道 \(50\) pts 有沒有。搞笑的是我用了 std::set<std::vector<int> > 這種 sb 東西用來判重,然而實際上我的搜索方式根本不會重,估計有些點本來能過現在沒戲了。
T3 一看就是支配樹板子,題面里都有“支配點”了還能不是嗎?!還有省選怎么考板題啊什么玩意。。。算了反正我不會,而暴力又不好寫,這題……不要也罷!瞬間感覺我 \(3.5\) 小時在 T1 上的付出血賺不虧 然后 FST 了
估分 \(100+50+0\),比前一天能看一點,但是好像還是被吊打了,一問一個一百五,說是有手就行,那打擾了我沒手(
T1 有人寫平方,有人分塊 \(0.7 \text s\) 過了大樣例,有人寫什么倍增樹剖主席樹,一聽就不知道比我的垃圾點分治高到哪里去了。不過據說有人賽時沒調出來的,要么就寫了三個多小時的,大概跟我一樣寫屎做法。Flying 的並查集做法也沒調出來,默哀。T2 cly 說是區域賽原題,devinw 說賽場上 ZJU 人幾分鍾就發題解了,那這也太不行了。
最后發現 D2T1 可能會掛,而且非常鬼畜,詳見:https://strncmp.blog.luogu.org/solution-p7518
Final
- Day 1 :\(100+0+16=116\)
- Day 2 :\(85+40+0=125\)
想不到吧 D1T1 官方數據水到爆炸我直接過了。據說 zk 場上指數級暴力 + 亂搞直接就過了,真是令人 下飯 噴飯。
但是 D2T1 掛了三個點,不出意料掛在前面的點了;D2T2 只拿了 \(40\),發現把那個 sb 去重刪掉就 \(45\) 了,直接自閉。
所以 D1T1 多水的分在 D2 掛回來了? 官方數據歡樂多又多
