北大集訓2019遊記

2022-05-11 03:49:13 字數 3992 閱讀 3249

去中關新園報到,見到了zyy,cf,lbt等各路神犇。

去北大機房試機,感覺北大的機子比noi的機子好用多了。

發現來北京,我需要適應熱帶沙漠氣候和溫帶季風氣候的快速轉換,有點難受。

上午去考試。先讀一遍題面,感覺t1應該是比較好像但是特別繁瑣的題,t3是很難的題,t2不知道。仔細地想了想每道題,發現t2轉換幾步之後,和我見過的另一道題思路是差不多的。而這個t2,只需要在那個題基礎上套乙個二分答案再套乙個字尾自動機 + parent樹上dfs + 差分陣列。

於是我先寫t2去了,實現總用時大概為1h。調調調,終於調過了樣例。一交就wa。對拍對拍,調調調,發現我字尾自動機有個變數名寫錯了(這都能過樣例的嗎???),改了交上去,獲得了60分的好成績。

我開始卡這題的常數,加了些奇怪的剪枝,發現跑了8.8s(時限8s)。然後把字尾自動機的轉移邊用陣列而不是map儲存,直接過了???開始覺察到這題的毒瘤之處了。

接著開t1,推了好久把t1的樹形dp轉移式子寫出來了。然後開始實現,總用時大概為1.5h。測樣例,發現樹形dp的狀態都有問題了。開始一通狂改,把狀態改對了,把轉移式子改對了。重新實現,通過了題目所給的兩個樣例。提交發現wa成0分。

此時離比賽結束還剩15min。我趕快rush了乙個t3的3分暴力和t1的8分暴力,發現t1仍然0分,而t3只是多了3分。

我的得分: 0 + 100 + 3

我的排名: rk29

下午聽講題,發現我t1,t2好像都是正解,t3這題需要用到帶花樹演算法,無人ac。

在賓館裡跟南外的xy巨佬除錯今天的t1,發現我和他的**裡面好像都犯了乙個小錯誤,導致爆零。哎,ioi賽制都能掛分,還直接掛100分。

上午去考試,看到t1,發現這不就是乙個dft的基本運用嗎?過了45min,實現 + 除錯完畢,一遍ac。

看到t2感覺很迷,先搞t3吧。發現這個題去掉資料結構的話是個樹上高消的經典題。所以難道是鏈修改,維護動態樹上高消dp?但是ddp我寫不動,就想著再推點式子,找更妙的做法。推著推著,發現竟然可以直接把答案寫出來?(使用了一點高中數列求通項常見技巧)。然後發現這題竟然是直接lca + 字首和就好了。

吸取昨天的教訓,我並沒有急著寫正解,先提交了個20分暴力驗證了一下我結論的正確性,再把正解實現了出來。此時比賽進行了2h,我已經獲得了200分。

接著想t2,想著想著,我發現乙個驚人的事實:考場竟然變空蕩了!又想著想著,發現這題實際上是某道集訓隊作業的類似題,是k-正則二部圖必有邊的k染色這個結論的擴充套件。你只需要隨便搞乙個網路流,每次求二分圖最大匹配即可ac。用餘光環顧四周,發現又有幾個位置空了出來。趕快實現這個演算法,一遍ac!此時離比賽結束還有1個多小時。

過了一會,覺得沒事幹,提前離場了,此時似乎已經有20個人提前離場了。

本場得分:100 + 100 + 100

目前排名:rk18

下午聽講題,發現這個t3出題人的做法竟然沒有我的做法複雜度優秀,感覺有點迷啊。

晚上我和lbt,hzk,xy等人在討論明後兩天有沒有互動題,造計算機題之類的題,感覺要是真的出了我就掉出前20了。

先看題,看到這場題有一道計算幾何,一道奇怪的題(和某imo題的操作完全一樣)和一道互動題,感覺自己要涼了。

t2的題意如下:

給定圓環上的\(n\)個整數\(a_0, a_1, ..., a_\)(\(n \ge 3\))。每次選取圓環上的數\(x\),設與它相鄰的兩個數為\(y,z\),那麼把\((y, x, z)\)變成\((y + x, -x, z + x)\),求把圓環上所有數變成非負數的最小操作次數(無法操作時輸出-1)。

而那道imo題是\(n = 5\),\(\sum_^ a_i > 0\)時,求證只要是不斷對負數操作,總有一刻使得最終所有數全部變非負數。

先想t1,驚奇地發現這題並不是那種我不會的計算幾何題。你只要找乙個結論,然後很快就寫完了。

我在45min左右就搞定了這題,然後開始輪番想t2和t3。掛機了大概2h,想出了t3的乙個似乎是正解的東西,需要用到隨機化。開始實現t3,交上去發現我的做法被卡成30了。再優化了一點常數,發現變成了55分。

奇怪地是,這份**過了subtask 1,2,4,卻沒有過subtask 3。那好,我就多提交幾遍,看來它只是rp不好,沒有過subtask 3。

結果發現,這份**有一定概率獲得10分(subtask 1),一定概率獲得30分(subtask 1,2),一定概率獲得50分(subtask 1,2,3),一定概率獲得55分(subtask 1,2,4)。

我暫時放棄了這道題的卡常,轉而想t2。我先寫了乙個亂搞:每次找到環上最小的數,對它操作,然後如果過了很多次它還是沒有變成全部非負,就輸出-1。交上去竟然獲得了30分。我猜了一下答案為-1的充要條件,交上去還是30分。我想著用資料結構維護這個貪心,發現根本維護不出來。

此時時間已經不夠了,我做了乙個決定:反覆提交t3的**,把這道題的最大提交次數用滿,以獲得75分(subtask 1,2,3,4)。

然而我的rp並沒有那麼好,它仍然只能獲得55分的成績。

本場得分:100 + 30 + 55

目前排名:rk15

下午聽講題,發覺t2,t3正解都是很妙的東西。晚上我被各路穩進前15的神犇奶了,再加上自己心裡的緊張,直接為我明天的**埋下伏筆。

上午先看題,發現沒有互動和提答。t1是一道計數題,t2是一道奇怪的數學題,t3是一道最優化題。

先想t1,發現這題並不難。在1h之內我通過了t1。

再想t2,自閉了快1h才找到這題的乙個真演算法(指數級別的暴力)。我實現了它,打了個表。大約15分鐘它跑出來了\(n = 2,3,4,5,6,7,8,9,10\)的結果(本題基本上是只輸入乙個正整數\(n\)(\(n > 1\))的題)。把錶交上去,它獲得了35分(\(n \leq 10\))的暴力分

開始對著這\(9\)個數瘋狂找規律,然而並沒有找到通項公式,也沒有找到遞推公式。

又試圖壓狀態推dp,然而並沒有推出來乙個多項式做法。

對著這題自閉了很久,我才開始想t3。先實現了這題的乙個18分費用流暴力,過了subtask 1,2。再要看題的時候,發現:

又過了大概15min,老師通知全場選手獲得一定的加時。這時我才能重新看到題目。對著subtask 4想了乙個線段樹維護貪心,實現了一下,自己手測了幾組資料,似乎能過。

4h 30min左右,老師通知本場比賽有可能變成oi賽制,建議大家對拍。我就開始拿我subtask 4的貪心和費用流做法對拍,結果直接wa了!

我瞬間變得不知所措了起來,瘋狂想著這題的其它亂搞貪心。

既然我前面是從左往右貪心,我現在就從右往左貪!

改!改!改!這個線段樹維護的東西要再加幾個。改pushup函式,加乙個詢問函式!再在主函式裡面寫個貪心!

4h45min:subtask4的貪心搞定了,此時大樣例下發,本場比賽變為oi賽制。

測試subtask4的樣例,一遍通過!

4h48min:subtask 4的貪心可以推廣!怎麼用資料結構維護?算了別想了,快rush出來!

4h53min:實現完畢,通過小樣例,wa了大樣例!

4h55min:oj感人地修好了!提交34分**。

4h56min:34分到手!

4h57min:變數名打錯了,改!測大樣例,通過!

4h58min:提交71分**。要是寫掛了就完蛋了!

4h59min - 5h:返回了71分的結果。

總之這場打的真的是驚心動魄。然而,t3的71分挽回不了被卡t2的失誤。本場排名為22名。

本場得分:100 + 35 + 71

最終排名:rk19

下午聽講題,發現t2的正解竟然是\(n \leq 10\)打表,\(n \ge 11\)輸出0?我離t3的正解的確就差乙個資料結構了,然而卡了很久的t2,也沒有時間想了。

如果我d1t1調出來了,如果我發現了d4t2的結論,如果我把d3t3卡過去了,我都會擠進前15。然而,我並不能祈求有這麼好的運氣。在我前面的人都是我所認識的大名鼎鼎的神仙,我完全不敢說:我比他們強。

現在我的最後一戰是wc,不求翻進前15,只求我的結果配得上我的付出吧!

upd: wc和cts合併了,我可是能參加cts的人,厲害吧

upd: 最終cts和noi合併了。然後noi沒有太考好,以32名參加選拔選手裡面的第18名結束了本賽季。

2020北大集訓題解

能聽懂的就盡力寫吧。肯定是都咕了。再次感謝出題人不殺之恩,給了我 89 分這個鬼畜分數。做法 不是寫法 和正解完全一樣,然而還是不知道自己怎麼錯了。心情好了再去看 這題不僅被甩了 11 分還花了 3h 真就聯賽模擬題啊 jk 獲得成就 上台講題。先考慮乙個區間怎麼做。對於每個位置直接處理出 pre ...

北大集訓2018墊底記

報道日,住的離學校挺近的,但感覺附近超市有點遠啊。下午打了場試機賽,又墊底了。試機題好可怕啊,乙個題答乙個互動,感覺自己退役穩了,不過本來就是來墊底的,也沒啥好怕的了。晚上去農園吃,感覺還行,就是沒湯有些gg 夜裡暖氣調太高了於是打低了幾度,早上起來有點冷。上午打了場day1,又墊底了。機房暖氣好足...

北大集訓 CTT 2021 部分題解

忘報名北大集訓,還是能看到題,省了 8000 塊錢,贏麻了。鴿表示沒 may be 無正解思路。鴿。k 2 的做法 考慮分治,取中間點,處理所有跨過中點的,連上左右兩邊所有到這裡的邊,遞迴下去,是 o n log n 但是有很多重複,恰好卡進。k 3 的做法,取若干關鍵點分成若干塊,開頭結尾兩塊只用...