lg-dp3
計數的東西有什麼特點、轉化/好的刻畫方式
A Farthest City
題面關鍵資訊:權值為1的最短路 --- bfs --- 分層
那麼顯然加一個點他只能與上一層連,和一層內部連。則設 \(f_{i,j}\) 為 [點數,最後一層點數]
有
B CSA [1]
題目關鍵資訊:排列。等價於求數的拓撲序個數。
計數物件性質:父親位置 < 兒子位置
則如果確定根 \(r\) ,那麼可以設 \(f_x\) 為 \(x\) 子樹中的答案。
本題還有結論為 \(\frac{n!}{\prod sz_x}\)
C [AGC030D] Inversion Sum
計數物件性質:很好維護
其實你要不就是一直維護這個序列(整體來看),要不就是一對一對看。
那麼變成機率,再變成期望就很自然了。所以現在我們要求 \(f(i,j)=\mathbf P(a_i>a_j)\)
考慮在交換的時候維護 \(f\) 。
當然不轉化可不可以做,是可以的,但是其實很像的。
-
期望有線性性
-
對機率的維護其實融合了所有的情況
D Shopping
題目關鍵資訊:買東西的點必須是連通塊
澱粉質可以處理連通塊,但是本題也可以按 dfn dp
E [CEOI2016] kangaroo
計數物件特徵:波浪形的(wavy);
排列要是波浪形的,最後一個要是 T,第一個要是 S。
考慮連續段 dp,本質上是我們按照某個順序加數,只確定了相對順序,然後按照某種方式刻畫連續段來維護某種限制。
從小到大加入數,設 \(f_{i,j}\) 表示 [當前加到i,有j段]
此時,有三種方案:
-
新開一段 \(f_{i,j}=(j-[i>S]-[i>T])f_{i-1,j-1}\) (S前面和T後面不能插入段)
-
加在某一段前面/後面 非法(分類討論一下可以證明)
-
合併兩端 \(f_{i,j}=jf_{i-1,j-1}\)
F Tenzing and Random Operations
容易得到式子,但是沒啥用,考慮組合意義
這個問題就更具有 dp 多層決策的特徵。令 \(f_{i,j}\) 表示 [走過 \(1\to i\),已經用了 \(j\) 個工具]。
那麼:
-
不放置新的工具,直接走 \(a_{i+1}f_{i,j}\to f_{i+1,j}\)
-
用獲得過的工具,\(jvf_{i,j}\to f_{i+1,j}\)
-
再放置一個工具,\(f_{i,j}\times\frac{i+1}{n}\times(m-j)\times v\to f_{i+1,j+1}\)
G PERIODNI
由於原來這個表格是不規則的,這是不好處理的,考慮劃分成若干矩形建笛卡爾樹。
在一個小矩形內部的填數方案是容易處理的,對於列的限制,建一棵笛卡爾樹,然後做樹形 dp 處理。
H Distributing Integers
等價於前面 B 題 CSA
I #(subset sum = K) with Add and Erase
要求動態維護 K 的拆分數。只有加入是很簡單的,如果存在刪除,我們就強制從 \(-x\) 轉移。
可撤銷揹包,多項式理解方法:
加一個----兩項的多項式乘法,刪一個----兩項的多項式除法。
J [COCI2006-2007#3] BICIKLI
到達不了環就 dp,有環就分討:
-
若環可以到達2 INF (取反圖判斷)
-
不可以就不必訪問環
K [HNOI2019] 校園旅行
大boss BLACK
\(30\%\)
\(\mathcal O(m^2)\)
\(100\%\)
Hint: 縮減邊的數量,使其與點數同級
現在考慮對於兩邊,我們要做的就是同色來連續子串對應長度相等。
考慮如何能做到。
從變化的角度看,其實對於一個同色聯通塊來說,它為連入的點提供的能力就在於:
-
如果他是偶環,那麼你可以無損地獲得任何一個更大的、相同奇偶性連續段,然而如果在保證聯通性的同時,即使只有一條邊,也可以達到這個目的。
-
如果他是奇環,那麼你可以獲得改變奇偶性的機會,你可以無損地到達任何一個更大的連續段,如果是這樣,那麼在保證連通性的時候,連續走一個自環也能達到相同的效果
所以我們可以根據上面的觀察削減邊數。
本題與下面 H 題等價。 ↩︎