1. 程式人生 > 其它 >COCI 2021/2022 題解

COCI 2021/2022 題解

看了下賽程,大概只能打 Round 1 和 Round 2 了,之後可能就退役了。

Contest #1

打的時候因為有點事,大概只打了一個多小時。現在終於有時間補完了。

題對於知識點完備的選手比較簡單。我顯然不是這樣的選手,做做就當學點東西了。

C、D 題程式碼可以翻 LOJ,其他三題有需要可以聯絡我。

A - Ljeto

直接模擬即可。

B - Kamenčići

博弈題。\(n\le 350\),比較小,可以考慮一個大概不超過 \(O(n^3)\) 的 dp。

考慮一個狀態有三個要素:左右端點和,以及共取了多少個紅色石子(只需要記錄一個人的,因為另一個以及可以據此確定)。

那麼定義:\(f(l, r, c)\)

表示當前操作者面對的局面是,之前以及取過 \(c\) 個紅石子,現在剩下了區間 \([l,r]\),是否有必勝策略。

根據必勝必敗態定理得到轉移:\(f(l, r, c) = \lnot f(l+1,r, c') \lor \lnot f(l,r,c')\)\(c'\) 是計算得到的對方取過的紅石子數。

複雜度 \(O(n^3)\)。據說可以分析性質得到 \(O(n^2)\) 解法,可以到 cf 看看。

C - Logičari

第一次寫基環樹題!做法可能不是最簡潔的。

題意簡述:對基環樹黑白染色,要求每個點相鄰恰好一個黑點。求最小可能黑點數。

先轉化為正常的樹:任意找一條環邊 \((a, b)\)

斷開,然後欽定一下斷開的邊兩端的四種顏色組合。

不妨設 \(a\) 為根,每個點四個狀態,記錄自己和父親的顏色選擇。然後做正常的樹形 dp。

但是 \(a, b\)​ 兩個點需要是特殊處理的。對於 \(a\),可以試做它的父親為 \(b\)。而對於 \(b\) 需要額外討論一下……具體細節就不展開了。

複雜度 \(O(n)\)

D - Set

一下所有數字預設減一(\(\{1, 2, 3\}\to \{0, 1, 2\}\))。

我們挖掘一下題目的性質:對於一個位的三個數字 \((a,b,c)\),其所有合法組合對應的數字加起來都是三的倍數,即 \((a+b+c)\bmod 3 = 0\)

考慮到本質不同三元組個數為 \(3^m\)

​,設 \(f[i]\) 表示 \(i\) 三進製表示對應的 \(m\) 元組的個數(\(f[i]\in \{0, 1\}\))。

題目要求選取的三個 \(m\) 元組 \(i,j,k\) 的每一位都滿足三進位制不進位加法(\(\oplus_3\))為 \(0\),那麼就是 \(i\oplus_3 j \oplus_3 k = 0\)

考慮卷積,下標用上面的 \(\oplus_3\),那麼最後 \(f\) 自己卷自己三次後 \(f'[0]\) 就是答案。可以用 3 進位制 FWT 實現。

E - Volontiranje

有一個傳統的流做法,但是應該只能跑 subtask 2。

考慮一個基於貪心的神奇結論:在所有備選 LIS 中,抽出一個反轉後字典序最小的必然不劣。

首先感謝理解比較真,證一下也不難:考慮有兩組 LIS:\(\{i_1,i_2, \cdots,i_k\}, \{j_1,j_2, \cdots,j_k\}\)​​​​​​,那麼我們對應項小的換到 \(i\)​​​​​​,大的換到 \(j\)​​​​​​,即用 \(\{\min(i_1, j_1),\min(i_2, j_2), \cdots,\min(i_k, j_k)\}, \{\max(i_1, j_1),\max(i_2, j_2), \cdots,\max(i_k, j_k)\}\)​​​​​​​ 取代之,不難發現其仍然合法。

然後嘗試實現。直接一次 \(O(n)\)​​ 掃一組解必然不對,考慮先做一次 dp 跑出每個位置結尾的 LIS,然後按 dp 值將下標分組。顯然的,同一組的按位置升序排好之後,其值必然遞減。

那麼,如果現在需要選 dp 值為 \(i\) 的組中的位置,上一次選了位置 \(x\)。我們先刪去在 \(x\)​ 之後的元素:易知這些元素在本次不可用,之後也不會起作用。

刪掉一些後,檢視最後面的位置 \(y\) ,是否可以接上 \(x\)。如果 \(a_y > a_x\),那麼 \(x\) 就沒辦法用了。需要注意,這不意味著求解結束,而只是將 \(x\) 刪去,\(y\) 可能在列舉字典序更大的一組解是被使用。因此使用搜索回溯實現。

每個位置用一次就會被刪除,搜尋部分複雜度 \(O(n)\)。總複雜度 \(O(n\log n)\)

本文來自部落格園,作者:-Wallace-,轉載請註明原文連結:https://www.cnblogs.com/-Wallace-/p/sol-coci2021-2022.html