高維字首和/SOS DP 學習筆記

Luminescence_2024發表於2024-03-25

JOISC 2023 D2T2 Council

注意到,欽定一個人為主席後,對於此時得票數大於 \(\lfloor \frac{n}{2} \rfloor\) 的議案,不管怎麼選副主席,均能透過;對於此時得票數小於 \(\lfloor \frac{n}{2} \rfloor\) 的議案,不管怎麼選副主席,均不能透過。所以需要考慮的只有此時得票數恰好等於 \(\lfloor \frac{n}{2} \rfloor\) 的議案。

\(S_i\) 為:欽定 \(i\) 為主席後,得票數等於 \(\lfloor \frac{n}{2} \rfloor\) 的議案集合。記 \(T_i\)\(i\) 的投票狀態取反後的狀態。記 \(base_i\) 為:欽定 \(i\) 為主席後,此時得票數大於 \(\lfloor \frac{n}{2} \rfloor\) 的議案的個數。那麼對於 \(i\) 的答案,形式化表述即為:

\(base_i+\max_{T_j \bigcap S_i} \mid T_j \bigcap S_i \mid\)

這是一個我們熟知的高維字首 \(\max\) 的形式。但是我們還要對 \(T_j\) 這個條件進行限制,所以不能直接做高維字首 \(\max\)。接下來考慮如何處理這個限制:注意到,\(T_j\)\(T_j \bigcap S_i\) 的超集,而 \(T_j \bigcap S_i\) 又是 \(S_i\) 的子集。那麼,我們可以先以 \(T_j\) 為基礎做一遍高維字尾 \(\max\)(即超集 \(\max\)),再做一遍高維字首 \(\max\) 即可。這樣就能保證列舉到的集合同時滿足是 \(S_i\)\(T_j\) 的子集這兩個條件,因此是合法的。

因為本題還要求主席與副主席的編號不同,所以在轉移的時候,不僅要維護最大值和最大值編號,還要維護次大值及其編號。寫起來有點令人暴躁。

題交記錄

ARC 100 E - Or Plus Max

先寫上一題再寫這一題,簡直是不要太容易。

題交記錄

相關文章