暑假模擬17

Abnormal123發表於2024-08-13

暑假模擬17

\(T_A\) 符號化方法初探

簡單題,不講

\(T_B\) 無標號 Sequence 構造

這題有點逆天。

先看正解:考慮給等式左右同乘一個 $ 1 \times n $ 的矩陣,矩陣隨機生成,這樣複雜度變為了 \(O(n^2)\) 。至於正確性,根據不知道什麼定理,錯誤機率為 $ 998244353^{-1} $

賽時做法:一個錯解。考慮我們只關注C矩陣每一行和每一列是否合法,稍微最佳化一下即可做到 $ O(n^2) $ 的優秀複雜度。不保證正確性。有辦法hack這個做法,一個合法矩陣,如果,有兩列的相同行數加和相同,那麼交換這幾個數就行。但再隨機資料下機率很小,僥倖AC。

\(T_C\) 無標號 Multiset 構造

抽象。

注意到 k 很小,既然每個點要麼選要麼不選,每一列的狀態數只有 $ 2^k $ 個,也並不多。要求圖聯通,重點是不同行之間的點聯通。 \(n\) 很大,還是考慮從 \(k\) 入手,發現各行聯通情況至於出現了哪些狀態有關,與每種狀態出現幾次無關,爆搜每種狀態選或不選,複雜度 $ O( 2^{ 2^k } ) $ ,並判斷這種方案是否聯通,統計合法方案種類數,開 $ 2^k $ 個桶表示選擇其中 \(i\) 個狀態的合法方案數。這裡有 \(n\) 列,列舉只出現了 \(m\) 種狀態,相當於 \(n\) 個小球放進 \(m\) 個盒子,每個盒子至少放一個的方案數,簡單容斥一下即可。

發現 $ k=5 $ 時, $ 2^{32} $ 不可過,考慮打表,只要 \(2^k\) 個狀態即可

int cnt1[3]={1,2,1},cnt2[5]={1,4,5,3,1},cnt3[9]={1,8,22,43,60,53,28,8,1};

int cnt4[17]={1,16,95,453,1595,4079,7775,11325,12838,11436,8008,4368,1820,560,120,16,1};

int cnt5[33]={1,32,406,4235,32705,191285,882931,3324441,10460210,27984080,64454950,128984430,
			225771000,347364500,471432800,565722120,601080310,565722715,471435600,347373600,
			225792840,129024480,64512240,28048800,10518300,3365856,906192,201376,35960,4960,496,32,1};

\(T_D\) 有限制的構造

簡單DP,反思自己為什麼沒有場切。設 $ dp[i][j][k] $ 為前 \(i\) 個遊戲,選擇 \(k\) 個遊戲,畫面質量之和為 \(j\) 的最小不可玩度,轉移顯然。

賽時不敢想 \(T_D\) 正解,挺遺憾的。

相關文章