ZJOI2021 游記


Day1

沒有給每一道題分別建子文件夾,爆零了

算了還是簡單寫一下吧。

8:25

下發了密碼

開題一看 T2T3 都不會,T1 好像不難。

8:30

開始敲代碼。

8:50

發現題目看錯了,沒有看到 \(m\) 的限制。

仔細思考了一下好像又會了,枚舉最小值在什么位置,然后第一次跑是 \(\rm min\)\(a\) 數組里的,第二次交換 \(a\)\(b\)\(m = n - m\) 去跑 \(\rm min\)\(b\) 數組里的。

然后中間的東西用優先隊列去隨便搞搞即可。

10:00

經過長時間的調試終於過了前兩個樣例。

第三個樣例輸出十分離譜?

10:20

發現自己犯了十分 zz 的錯誤,但是輸出更離譜了。

冷靜分析發現自己做法假了,\(\rm min\)\(b\) 數組里的不能這么做,要換種做法,然后又去胡了個做法。

11:00

新做法過了小樣例和第三個樣例,但是沒有過第二個。

11:20

冷靜分析發現自己做法又假了,於是把那個對於 \(\rm min\)\(b\) 數組的部分給刪掉了,由於腦子快要爆炸了決定不管 \(\rm T1\) 了,如果后面又可做題沒做就可惜了。

然后 \(\rm T2\)\(\rm T3\) 都仔細思考了一下,覺得 \(\rm T2\) 更可做一些就去搞 \(\rm T2\)

11:40

如果枚舉第一行和第一列,然后設 \(f_{x, y} = \sum\limits_{i = 1}^{x} \sum\limits_{j = 1}^{y} b_{i, j} (-1)^{x+y-i-j}\)

那么可以發現 \(\rm T2\) 的一個性質:

\(a\) \(x_1\) \(x_2\) \(x_3\) \(x_4\) \(...\)
\(y_1\) \(f_{1,1}-x_1-y_1-a\) \(f_{1,2} -x_2 +y_1+a\) \(f_{1,3}-x_3-y_1-a\) \(f_{1,4}-x_4+y_1+a\) \(...\)
\(y_2\) \(f_{2,1}+x_1-y_2+a\) \(f_{2,2}+x_2+y_2-a\) \(f_{2,3}+x_3-y_2+a\) \(f_{2,4}+x_4+y_2-a\) \(...\)
\(y_3\) \(f_{3,1}-x_1-y_3-a\) \(f_{3,2} -x_2 +y_3+a\) \(f_{3,3}-x_3-y_3-a\) \(f_{3,4} -x_4 +y_3+a\) \(...\)
\(y_4\) \(f_{4,1}+x_1-y_4+a\) \(f_{4,2}+x_2+y_4-a\) \(f_{4,3}+x_3-y_4+a\) \(f_{4,4}+x_4+y_4-a\) \(...\)
\(...\) \(...\) \(...\) \(...\) \(...\) \(...\)

於是分行列的奇偶性討論一下就是一個線性規划問題了。

但是這個表格看上去有很優美的性質?

12:00

發現:

對於 \(x_i\),令 \(X_i = \begin{cases} a+x_i \; i\equiv 1 \pmod 2 \\ a-x_i\; i\equiv 0 \pmod 2 \end{cases}\)

對於 \(y_i\),令 \(Y_i = \begin{cases} -y_i \; i\equiv 1 \pmod 2 \\ y_i\; i\equiv 0 \pmod 2 \end{cases}\)

然后就是一個差分約束問題了。

瘋狂敲代碼。

12:30

寫完了,感覺來不及調。

12:55

終於過了樣例。

手忙腳亂地加了個文操,把代碼放到文件夾里。

12:58

發現自己 T2 有個調試沒刪,趕快刪了。

然后比賽就結束了,T3 的暴力也沒時間打。

13:??

聽說自己又把文件夾建錯了,回憶了一下確實,爆零了

Day2

面到了神 yzc2005 和 ylwang /se

8:20

看了眼題,T1 大數據結構,T2 小清新 \(\rm DP\),T3 貌似是科技題?

8:30

決定正開(

T1 很像 \(\rm XJ\) 模擬賽的一道題,但是那場模擬賽太毒瘤了還沒有講題就沒去補。。。

想了想只會 \(\Theta(n \log^2 n)\),但是想了想又假了,變成了 \(\Theta(n \log^3 n)\)

9:20

寫完了?

寫了 \(\rm 4.5k\)。。。不知道要調多久。。。

9:40

過第一和第二個樣例了,但是第三個樣例 \(\rm RE\) 力!!!!1

點開數據一看,是個類似於鏈的東西,需要開棧。但是我發現我不會開棧,於是就測不了了。

寫了個拍子,大概在 \(10:20\) 的時候拍上了。測了下隨機數據都要跑 4s,怕不是要 T 非。

10:50

這個 T2 感覺很簡單,懶得拍了就去看看 T3 。

T3 的 \(\Theta(nmq)\) 暴力就是把每一個點刪掉跑 bfs,但是總感覺這個可以 \(bitset\) 優化。

想了半天無果,於是寫完暴力就跑了。

12:00

啊我好像會 T1 的 \(\Theta(n\log^2n)\) 的了。

7k 的代碼,沒調出來。

13:00

我 T3 樹的分忘記寫了 /dk

簡單思考了一下 T1,貌似把我的 lower_bound 查表換成哈希表就是 \(\Theta(n \log^2 n)\) 了,那是我不太行。

但是如果這個時候再加我最后想加的優化(鏈頂向下的一段用主席樹做)並用 \(k\) 叉樹就是 \(\Theta(\frac{n \log^2 n}{\log\log n})\) 的了(在線)。

不過我好像沒有去往離線算法方面想,說不定有更優的?

估分是 \([25, 100] + 100 + 30 = [155, 230]\)(這里只考慮卡常問題)


接着就是發現自己 D2T3 數組開小了(test1 和 test2 掛了,我的空間和詢問多少有關)。

D1T2 忘了把 \(dis\) 數組請空(盡管本來也爆零了233)

upd :確實有更優的,離線倍增/點分 好像都可以 \(\Theta(n \log n)\)

恭喜 hehezhou 成為 \(\rm A\) 隊隊長!!!!!!!1


出分了。。。

\[0+0+0+100+100+30 \]


免責聲明!

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



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