[BZOJ4574][Zjoi2016]線段樹(DP)
Address
洛谷P3352
BZOJ4574
UOJ#196
LOJ#2093
Solution
原本是一個期望 DP ,但是由於乘上了
,變成了計數 DP ,即求每個位置每種情況下的值之和。
資料是隨機的,假設它們互不相同。先離散化。
很容易想到一個狀態:
表示第
個數變成從小到大第
個數的方案數。
那麼
位置的答案為:
其中
為從小到大第
個數的值。
考慮如何求
。如果有
,那麼無論如何操作, 區間
之外的值永遠不會變成
。
其中
為
左邊第一個比
大的數的位置(不存在則為
)
為
右邊第一個比
大的數的位置(不存在則為
)
所以再定義狀態
表示第
輪之後恰好 區間
變成了
的方案數。
這樣還是不好 (ke) 推。因為如果某次操作發生在
(
),那麼
會增加或者
會減小(設分別改變至
和
),這樣如果操作的左端點在
而右端點大於等於
則修改對
的分佈會特別難處理。
於是我們把狀態中的
和
改為
和
的值,即:
表示第
輪之後恰好區間
小於等於
的方案數。
邊界:
轉移(1):操作區間不包含
:
其中