省選模擬 14

2022-09-21 00:15:11 字數 1107 閱讀 1728

老規矩,禮尚往來。我覺得題目的英文名字比中文名字好看一些,中文名字就乙個字,好-色-樂。

題目要求不一定刪完,如果我們知道強制刪完每個區間的最大價值,剩下的操作就是乙個簡單的 \(n^2\) dp。

現在我們只需要求出來刪掉每個區間的最大價值。考慮區間dp。

討論區間端點l,r是不是同時被刪去的。如果不是,那麼整個區間一定存在乙個分界點滿足左右互不影響,這一部分列舉分界點轉移即可。

如果l和r是同時刪去的,那麼也就是說存在乙個起點為l終點為為r的好串。

觀察好串的性質,發現好串一定是乙個先遞增然後遞減的序列。這樣我們就容易進行dp了。

我們可以分兩邊dp個單調遞增的序列,然後列舉最高點拼起來即可,注意l和r可能是最高點。

複雜度\(o(n^3)\),我的實現比這個複雜度要大,看上去像是\(n^4\),但是實際的運算量只是多了個較大的常數。

注意最小距離一定是一條邊的權值,這個東西顯然。

還有乙個很重要的性質,就是最小權值一定在最小生成樹上,這個東西好像也是顯然的,可以嘗試反證法證明。

綜合以上性質,最小權值一定是最小生成樹的一條邊。

我們對於父親節點維護兒子顏色個數個可重集,然後維護乙個全域性可重集。

更新時在父親節點處更新自己的貢獻即可,然後對於自己的顏色則直接修改,或許還需要維護一顆線段樹。

複雜度\(o(nlogn)\)。

然而我並沒有寫這個做法,出題人是良心的,資料是隨機的,所以.........

顯然是有border的數量好記,於是我們用總數減去有border的個數就行。

我們考慮如何計數,樸素的想我們需要列舉border長度,一開始我想列舉最長border的長度,但是這個東西的重複部分非常不好去,我嘗試了很多種容斥然後都失敗了。

於是換乙個方向考慮,我們列舉最短的border,這樣我們只需要限制這個border沒有border即可,你會驚喜地發現這就是dp的子狀態,完全可以轉移。

於是現在列舉border可以做到\(o(n^2)\)。

發現轉移式子是卷積的形式,與是可以用分治ntt來優化,複雜度\(o(nlog^2n)\),此時無法通過。

考慮最短border的長度不會超過n/2,於是只需要求出前n/2項即可,最後再計算第n項。注意卷積有一些限制,使得分治乘法和模板並不太一樣。

省選模擬14

t1 要求乙個類似尤拉迴路的東西 考慮其實就是將奇度數點兩兩配對,配對的代價為最短路長度,求最小代價 發現邊權的特殊性 2 i 有乙個很好的性質 sum limits 2 i 2 n 那麼最短路就都是最小生成樹上的路徑 只需要跑出最小生成樹,然後在樹上配對就行了 t2 神題owo 將 i,j i j...

省選模擬14

屬實這場考試是順了我的心意 考場200整,第二題掛掉了10分,第三題的暴力dp沒有想到.第一題不知道我咋了,竟然成功的剪掉了狀態然後切掉了 第二題期望資料是隨的,於是我打了個暴力,期望複雜度 mathcal 最劣複雜度 mathcal 第三題抓住了一點點性質,但是想偏了,於是只打了暴搜 區間dp,這...

省選模擬14

考慮區間 dp f 表示刪完 l,r 這個區間的最大價值 考慮 l,r 在一次被刪掉 發現好的子串一定是前一段上公升,後一段下降 於是可以再開兩個 g 表示以 l,r 分別為兩個端點中間剩下恰好遞增或遞減的最大價值 那麼可以列舉乙個最大值的位置轉移 l,r 不在一次被刪掉,可以列舉乙個斷點來轉移 因...