BJOI 2021 游記


我的第一次省選!

也許也是最后一次了。

畢竟學的晚,最多也只能參加兩年省選。

3.20

第一次集訓,早上考三個小時,一開題就發現 B 之前見過原題,但是並不會解法。。40 min 整完 A 和對拍就去沖 C 的正解,在我印象中 B 那 20 分思維難度不太與我匹配,因此寫無腦的 C,寫了 1h,然后對拍老不對,調試了好久,后來發現貌似是暴力寫掛了,測極限數據卻被卡常了,1.4s,那確實不太行,xtq 說不開 \(O_2\),那我豈不是不太行。

最后出考場很自閉,跟暴力分一樣。

初發分居然 rk 1,\(100 + 80 + 100\),就好像夢一場,T3 爬過了,震撼。一堆人寫掛了,測的也有問題,更新榜是 rk 2,可能是我現場打的 oi 比賽最好的一次了,個人的優勢也許是代碼水平還算湊合?畢竟思維太弱了。

T2

講題人精髓完全跳過了,讓人懷疑是臨場強行讓上去糊弄人的(

這里讀完 std + 自己的一點優化寫一下題解:

首先考慮插入 \(1, 2\),注意到為了最后合法我們僅需要讓當前序列中空隙必須插入用 \(3, 4\) 隔開即可,因此只需知道當前序列有多少個相鄰相同對,這步可以 \(O(n_1^3)\) DP。

然后考慮忘空隙中插入 \(3, 4\),利用剛才的數組可以預處理出一個 \(g_i\) 數組流出恰好給 \(3, 4\)\(i\) 個空(定義這個空為段)的 \(1, 2\) 分配方案。

接着考慮把這個空分成三組,注意到 \(3, 4\) 在一個空里插的必須交替,因此 \(3, 4\) 在一個連續段中數量差不超過 \(1\)。如果枚舉了 \(3\) 數量 \(>\) \(4\) 數量的段數,那么可以推出 \(<\) 的段數。

我們可以用 \(O(n_1^2)\) 枚舉這樣的 \(3>4, 3=4, 3<4\) 的段數 \(a, b, c, a + b + c + s\),我們先把這些段分成這三組即一個多重集組合數:\(\frac{s!}{a!b!c!}\)

緊接着就是本題精髓,我們目前要解決的是把固定數量,這樣分配進去,讓他們和恰好等於題目要求並且滿足剛才的限制,看起來不太能做。但是考慮構造一個映射,如果我們確定每個段里 \(B\) 的個數,還有剛才的分組信息,是否就可以不重不漏映射出一組方案呢?確實是可以,但是要注意 \(3=4\) 的情況有兩種形式,所以外面 \(\times 2^{b}\) 就可以。

問題變成了求一個長度為 \(s\)\(x_i\) 數組滿足有 \(b\) 個位置 \(x_i \ge 0\),剩下位置是正整數的方案數。考慮建立一個映射,將 \(b\) 個位置 \(+1\) 就變成了經典問題。

這個局部 \(+1\) 還是蠻神奇的。

到這里就做完了。

3.21

今天蠻自閉的,早上想着換一個機房坐,結果開題發現一道自己見過但不會。

之后一直爆肝這道也就是 C,最后忘記 100pts 咋寫了,寫了個 70 pts,但最后跑太慢無奈打了個表,剩下就沒時間了,打了 AB 的暴力。后來發現 A 很簡單,只是一個猜結論。。自閉了。

最后全場就我 A 低於 \(80\) 分。。恥辱。

不過好在 C 的 70 分還很有用,穩在 10 名。感覺這個排名已經非常滿意了,希望能穩在這里(flag

A:結論連通圖可以最后變成完全圖,考慮每次縮一個長度為 3 的鏈變成一個環縮成一個點。我這都不會,就這, 就這。

B:考慮大力容斥,枚舉強制選的禁點,強制選的行列,要統計剩下可選的點,斜着會不好弄,考慮三個共點只會出現在 \(i, n - i\) 這種形式,所以每次把這些行列放在一起暴力枚舉情況做背包。

C:考慮最后對調值域

3.27

今天完全做了暴力老哥,非常的遜。

最后還是 rk10 其實能保持在吊車尾挺好的蛤。

學到的東西:

  • 考慮聯通塊建圖不行的時候考慮能不能把點拆開這樣更加形式化。

  • 神奇的黃金分割比

  • 通訊題也有平衡思想

  • T2 分治!!所有選段問題其實都可以考慮就是鏈上分治。、

  • T3 考慮函數性質可以考慮迭代、找規律等等。還有就是一個貨倉尋址問題的擴展版本,通過平移變換來轉化成原問題。

今天的 T1 jkp 講了還不會是真的遜。

3.28

越來越遜。

學到的東西:

  • 有時候要猜結論不能硬剛。
  • 考場也想到了當成多項式可時間不夠。
  • 一堆多項式的東西。

4.9 Day 0

摸了一天魚,回家很快便進入夢鄉。

4.10 Day 1

早上起來有點困困的,可能是睡的太多了吧。

進場,看了一會 T1 發現自己好像會把一副牌拆開,雙指針,一個值域區間合理等價於 \(n\) 個都有一個在,並且只有下面在的不超過 \(\le m\) 個,瓶頸在排序 \(O(n \log n)\)

然后寫了,過了大樣例,拍到結束,大概有一百萬組(?

然后就是自閉 5h,BC一個不會,B 這種構造我做過一個類似的 APIO 題,所以就一直想用 \((1, 1), (i, 1), (1, j)\) 這樣狀物的去表示 \((i, j)\),構成一個差分約束啥的,但是寫到一半發現還有和的限制,自閉了。。C 這個東西我先寫了個按照題意模擬,然后改成 \(O(mn^3)\) 這樣的,因為動態加邊維護強連通分量這個東西我一點不會。。后來發現只用寫很短,枚舉一對點對的貢獻二分就可以 \(O(n^2m\log m)\)。。感覺 \(44\) 很懸,但是大樣例跑的還行。

最后一會還是不會 B,連 \(m = 2\) 都不會也是沒誰了,一直陷入自己的怪圈里。

然后最后 B 整了個隨機生成,那必然是爆零了。

預計得分大概是 \(100 + [0, 35] + [16, 44]\) 這樣的,這破東西估計最少也都三四十名了吧。。

回家自閉睡了會,晚上很晚也沒有睡着很自閉。

4.11 Day 2

第二天到了考場,結果回收系統上不去睡了半個小時。

后來起來,看了三個題,好家伙,一個不會。又想了半天,總算會了 T1 的兩只 \(\log\) 做法,那就寫唄,寫了一個小時過了大樣例,貌似是 \(0.8s\) 不開 \(O_2\),感覺還是不錯的。又搞了半個小時整對拍,又雙叒叕拍到結束。

BC 又不會那真的是經典回放了,一開始 B 還看錯題了,暴力寫掛,然后發現居然可以 \(O(n!n)\) 算貢獻啥的,那我寫暴力干啥呢?

C ,我實在是太愚蠢了,連多項式做法都不會,咍咍,連斷掉 \(u\) ,DFS 都不會,我還有救嗎?最后整了個樹的部分分,自閉了半小時,就結束了。

大概得分是 \(100 + 60 + [10, 25]\)

感想

可能一直以來都是一個人在自己亂整 OI 吧,可能方向走的挺偏的。

對於若干簡單算法的應用,需要靈活轉化的題始終學不來。這段時間反而學了很多沒有用到的科技,最終考試用到最難的算法也只有線段樹。

如果還有機會,會着重放在 CF、AtCoder 這上面吧。不要再做板子了。

Update:回顧這次比賽,感覺沒有掛分是最大的特點,但是 matrix 的幾乎爆零和 d2t3 的不會 dfs 真的太屑了。要多練練打暴力能力(

摸魚就摸魚,訓練就訓練,要有詳細的計划,不能整天隨便亂看,一點作用沒有。

4.15

yls 說貌似進隊了,rk 7 左右,還蠻震撼的。感覺學校還蠻好的,居然有這么多優惠政策,可以天天曠課肄業了

今后的計划:

  1. 每天一套 CF div1
  2. NOI 往年題做
  3. 一定要補題!
  4. CF、AtCoder 比賽盡量參加練手感。

有意思的題寫題解記錄下來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM