省選模擬86 題解

2022-03-16 18:16:16 字數 1153 閱讀 6610

有一點 dp 套 dp 的意思,內層的 dp 就是直接在拓撲序上進行的簡單 dp。

外層記錄的是 dp 的狀態,然後 $o(n^3)$ 的做法是顯然的。

當轉移到第 $i$ 個位置的時候,只要關心前面有多少個黑點 dp 值為 $1$,前面有多少個白點 dp 值為 $1$,前面的 dp 值總和的奇偶性。

然後寫一下轉移係數,發現這個玩意是乙個簡單的組合恒等式,與具體多少個異色點無關,只與是否有異色點有關。

所以可以把 dp 的多少個改成是否存在,然後直接轉移就行了。

考慮怎樣的方案是不合法的,其實就是 $1$ 能到達的點集與 $2$ 能到達的點集無交。

可以用 dp 處理出兩個集合內部的方案數,然後對於全集減去兩個點集內部的邊,方向任意。

兩個集合之間不能有任何邊,兩個集合到全集減去兩個點集之間的邊方向唯一。

然後問題是處理出從點 $i$ 通過 $s$ 內部的邊恰好到達集合 $s$ 的方案數,求的方法是直接用全集-補集。

補集其實就是列舉 $s$ 的乙個子集 $t$,使得通過 $s$ 之內的邊只能到達集合 $t$。

那麼 $s-t$ 連邊任意,$t$ 內連邊是已經處理過的方案數,$t$ 和 $s-t$ 之間的邊的方向也是唯一的。

有這樣乙個性質,答案中的字串長度可以是連續的。

所以可以認為 $[l,r]$ 的後繼是 $[l+1,r]$ 或者 $[l,r-1]$。

然後正著進行 dp 並不容易處理,所以倒過來 dp,每次只要選擇乙個後繼。

令 $f_$ 表示以 $i$ 為起點,長度為 $len$ 是否存在,取值為 $0/1$。

然後有這樣乙個性質,列舉了乙個左端點 $i$,那麼取值為 $1$ 的 $f_$ 是一段字首。

所以其實只要令 $f_i$ 表示左端點為 $i$ 的最大的 $len$。

假設 $f_i=k$,那麼限制就是從 $s[i+k:n]$ 中找到 $s[i,i+k-2]$ 或者 $s[i+1,i+k-1]$,並且這個點的 $f$ 值應該 $\geq k-1$。

解決這個東西的方法是二分答案,還有乙個問題是字串的限制。

其實就是使得 $lcp \geq k-1$,所以寫乙個字尾自動機就可以轉化為 dfs 序上一段連續的區間,然後寫乙個主席樹就可以做到兩個 $log$ 了。

然後優化的方法是繼續找性質,有 $f_i \leq f_+1$,所以只要把二分改成暴力判斷即可。

省選模擬86

首先考慮基礎的dp定義,那麼發現轉移需要的係數只和dp是奇數的點的個數有關,所以將這個東西記錄在dp狀態中就行了。然後推一下dp轉移,發現轉移係數和奇數的點的個數沒有關係,只與是否存在這樣的點有關,所以用01來記錄就可以了。考慮用總方案減去不合法的方案,也就是1號點能到達的點和2號點能到達的點沒有交...

8 6省選模擬總結

今天被低2屆的虐暴了 感覺最近狀態有點低迷,做題速度低下.要多到網上刷題才行!第一題 刪數字 題目大意 給你乙個n 個數組成的序列v,要你刪除其中k 個數,m 表示剩下的數字中任意兩個數的差值的最大值,m 表示最小差值,要你計算刪除k 個數後,m m 的最小值。這題我一下在腦抽了.排序後可以發現若維...

省選模擬104 題解

a.簽到題 把每個點向它右側比他大的第乙個點之間連邊,如果沒有那麼向 root 連邊。那麼可以構成一棵樹。特判一些情況之後,可以認為問題就是 1.給某節點和它的所有兒子節點權值加上乙個值。2.詢問一條路徑的權值和。首先考慮如果只詢問單點的維護方法,其實就是打乙個標記表示給整個兒子集合都加上了若干權值...