多校 A 層衝刺 NOIP2024 模擬賽 19

Qyun發表於2024-11-07

題解還是得寫,不能偷懶啊~

多校A層衝刺NOIP2024模擬賽19

圖書管理

簽到題

考慮最困難的部分是確定中位數,不妨欽定中位數,然後計算其貢獻,然後考慮只列舉一個邊界,另一個邊界可以放桶裡。

時間複雜度 \(O(n^2)\)

兩棵樹

機率期望

考慮拆貢獻,有等式

\[連通塊個數=點數-邊數 \]

證明考慮圖原本的形態是一顆樹。

記點數為 \(d\),邊數為 \(e\),則有

\[E(XY)=E((d_x-e_x)(d_y-e_y))=E(d_xd_y)-E(d_xe_y)-E(e_xd_y)+E(e_xe_y) \]

  • \(E(d_xd_y)=\frac{1}{4}n(n-1)\),考慮一個圖中每個點的貢獻即可計算。

  • \(E(d_xe_y)=\frac{1}{8}n(n-2)\),同上。

  • \(E(e_xe_y)=\frac{1}{16}\sum_{\{u,v\}\in T}(n-1)-deg_{U,u}-deg_{U,v}+[\{u,v\}\in U]\),同上。

時間複雜度為 \(O(n\log n)\),瓶頸在判斷 \(T,U\) 中是否有相同的邊。

函式

特殊性質,trie,二分

考慮怎麼判斷答案的存在性,類比實數域上連續函式的零點存在定理,只要異或後的存在大於零的數和小於零的數則一定有解。

並且發現這個解一定在這兩個之間,二分即可。

時間複雜度 \(O((n+q)(\log n+\log V))\)

編輯

值鍵互換,hash,二分,DP

\(O(n^3)\) 的暴力 DP 是平凡的。

( 即列舉 \(t\) 串的字尾,設 \(f_{i,j}\) 表示 \(s\)\(i\) 個和 \(t\)\(j\) 匹配上的最小編輯距離 )

但是這個做法是很沒有前途的,無法最佳化。

考慮一些性質,注意到 \(k\le30\) ,答案限制很小,考慮值鍵互換,並且兩個串的長度之差只會差 \(k\),所以可以設計一個只有 \(O(k^2)\) 的狀態,即 \(f_{i,j}\) 表示編輯距離為 \(i\),匹配上的 \(|t|-|s|=j\) 時,\(|s|\) 的最長長度。

還是考慮列舉字尾。

考慮如何快速轉移,注意到匹配的情況是一個 "修改一個+一段相同+修改一個+一段相同...",修改只會有 \(k\) 個,瓶頸在轉移一段相同的,雜湊+二分即可最佳化至 \(O(\log n)\)

轉移考慮增加,刪除,替換,刷表取 \(\max\) 即可( 注意與狀態相匹配 )。

統計答案時,對於每一個 \(j\),加上最小合法( 值等於 \(|s|\)\(i\),即可。

時間複雜度為 \(O(nk^2\log n)\)

注意轉移時的邊界問題。

p

相關文章