模擬賽 2

Nt_Yester發表於2024-11-17

11.16

T2

先考慮前兩個限制,發現都是與奇偶性相關的,考慮建二分圖,在不考慮第三個限制下是一個最大獨立集計數。

發現由於連邊方式是每一位向相鄰兩位連邊,那麼最大獨立集數一定是 \(\frac{n}{2}\),並且一定形如先選一段奇數再選一段偶數的形式。

再考慮一下第三個限制,考慮對每個配對的 \((l,r)\) 加上一條 \(l\to r\) 的邊,發現只有最外層括號的限制是有用的,因為內層括號的限制一定被外層括號的限制包含,那我們考慮列舉奇數和偶數的分界點,發現每個限制實際上就是形如區間 \([l,r)\) 不能選,我們考慮把左括號設為 \(1\) 右括號設為 \(-1\) 那麼能選的 \(r\) 實際上就是字首和為 \(0\) 的地方,上線段樹維護即可。

T3

考慮沒有包含關係是好做的,在離散化後你暴力修改覆蓋區間是均攤 \(O(1)\) 的,考慮有了區間包含後一定優先選擇被包含的區間,那我們考慮維護一個待選區間的集合,每次取出最小的區間後將包含他的且不被別的區間包含的區間加入即可。

比較簡單的實現方法是拿線段樹最佳化建圖建出一個 DAG。

P11281

小猜一手結論有最後的合法狀態肯定是形如 \(p_{p_i}=i\) 的,先把給定的限制加上,然後若干不確定的位,數量記為 \(m\),再欽定若干位為 \(p_i=i\),然後剩下的位置兩兩配對算方案數就行。

P11282

考慮按 \(pos\) 的奇偶性分類討論。

對於 \(pos=1\lor pos=n\) 的數,不難發現在 \(n>3\) 時均有解。

對於偶數位,考慮先對 \([1,pos-1]\)\([pos+1,n]\) 進行操作,那麼最後肯定會剩下三個數,因為我們只在意首位兩個數與 \(p_{pos}\) 的大小關係,所以我們只用關心極值就行,規定大於為 \(1\) 小於為 \(0\),假如最後能有 \(11\)\(00\) 的情況就是有解,否則無解。

對於奇數位,考慮同樣按上面做,那麼最後會剩下來五個數,我們還是隻考慮和 \(p_{pos}\) 的大小關係,那麼最後只有 \(0110,1001,0011,1100,0000,1111\) 六種狀態是合法的,因為左右是對稱的所以我們只考慮前兩個數,對於這些合法的狀態我們貪心的讓他們儘量被取到,對於第二個數也就是緊貼 \(pos\) 的數,我們選擇距離 \(pos\) 最近的 \(0/1\),因為我們要讓他保留下來所以對於 \([1,pos-1]\) 的字首要分給他一個奇數長度的字尾,我們讓這個字尾儘量小的前提下,對於剩下的那個字首去選擇他的極值留下來,這樣的情況下選擇的極值一定是最優的,然後將極值與 \(p_{pos}\) 比大小判定即可。