The 3rd Universal Cup. Stage 16: Nanjing

  • 連結:https://qoj.ac/contest/1828
  • 時間:2024 Nov 10, 02:00-07:00
  • 團隊:ネクロマンサー (SorahISA)
  • 成績:4 / 13, Penalty 565, dirt 0% ( A B C D E F G H I J K L M )

這場打的太混了 QwQ

整場都沒看計分板,因此一直覺得 L 可做,還有漏掉 G 是二元樹的性質。

Problem A. Hey, Have You Seen My Kangaroo?

待補

Problem B. Birthday Gift

Tags: observation

給定只包含 012 的字串 ,你可以不斷刪除 不為 0110 的 substring,問字串最短長度。

  • 多筆測資、

先考慮只有 01 的做法:可以 greedy 的遇到相同字元就刪掉(用 stack 維護)。

在這題也可以用類似的方法,維護把相鄰 0011 刪去的字串,會得到被 2 切開來,每段都是 01 交錯的字串。

而這就可以使用 DP,維護以 01 結尾的字串的所有長度,遇到 2 就將其換成 01(一樣當遇到連續相同字元就刪掉),因為可以構造出來的長度是連續的,於是可以只維護最小最大值。具體實作可以參考 submission

以下是題解給出的天才解法:

為把 所有偶數 position 的 01 字元反轉形成的字串,那 中刪掉 0011 就會變成 中刪掉 0110

一樣先假設沒有 2 的情形,可以發現只有當 字串全部字元相同時才不存在 0110,因此答案就是 01 的數量差。

如今我們只在意數量差了,那麼自然有 2 就可以往數量少的那邊補,這份 code 只有短短 8 行。

Problem C. Topology

待補

Problem D. Toe-Tac-Tics

待補

Problem E. Left Shifting 3

水題,跳過

Problem F. Subway

待補

Problem G. Binary Tree

Tags: interactive

待補

Problem H. Border Jump 2

待補

Problem I. Bingo

Tags: inclusive-exclusive, ntt

給你 ,你要將其由左上至右下填入 的表格 中。定義一個表格的 bingo 數

請計算所有 的排列的 bingo 數之和,模

min of max 很不好算,能不能把他換成只有 max 呢?

答案是可以的!用 min-max 排容:

以上算式的感性證明就是當 max 是第 小的時候你有 種其他東西的取法,而這些除了在 的時候都會正負消掉。

固定 ,並枚舉 中包含了幾個 row max、幾個 column max,可以得到以下算式:

其中 代表的是被 裡的 row 跟 column 覆蓋的格子數量,max of max 讓我們只需要計算這 個格子的 max 恰好是 的排列數量就好。

直接做是 ,得想辦法加速。令

那麼答案就是

把二項式拆開, 可以整理成如下形式,注意下標從 開始:

把只跟 有關的提出來變成 ,剩下的式子能整理成 的形式,感覺跟卷積很像了?

都是能預處理的,於是我們將 先 reverse 讓 裡面變成 的形式,讓 ,這題就能開心的用 NTT 解決掉了!

時間複雜度:

Problem J. Social Media

Tags: N/A

水題,跳過

Problem K. Strips

Tags: greedy

水題,跳過

Problem L.

待補

Problem M. Ordainer of Inexorable Judgment

待補