培訓
- 9 DP2DP2
momohuang December 13, 2013
1 Advanced Dynamic Programming
1.1 Optimizations
1. Deque Optimization: O(N2)→O(N) When ∀i < j, Li ≤Lj,Ri ≤Rj
DP [i] = min
Li<j<Ri
(C [j])
2. Convex Hull Optimization: O(N2)→O(NlgN)
When C satisfied C[a][d] +C[b][c]≤C[a][c] +C[b][d],∀a≤b≤c≤d
DP [i] = min
j<i
(DP [j] + C [j][i])
3. D&C Optimization: O(N3)→O(N2lgN) When ∀i < j, A[d][i]≤A[d][j]
DP [d][i] = min
j<i
(DP [d − 1][j] + C [j][i])
4. Knuth Optimization: O(N3)→O(N2) When A[i+ 1][j]< A[i][j]< A[i][j−1]
DP [i][j] = min
i<k<j
(DP [i][k] + DP [k][j]) + C[i][j]
Note: B, C are some cost function,A is the best decision(j or k) I
1.2 Exercies DP2
1.2 Exercies
1. Concept Questions 1: Deque Optimization
根據上述的 DP 轉移式,名稱,和適用條件,想出該優化的作法。
2. Concept Questions 2: Convex Hull Optimization
根據上述的 DP 轉移式,名稱,和適用條件,想出該優化的作法。
3. Concept Questions 3: D&C Optimization
根據上述的 DP 轉移式,名稱,和適用條件,想出該優化的作法。
4. Concept Questions 4: Knuth Optimization
根據上述的 DP 轉移式,和適用條件及時間複雜度,想出該優化的作法。
5. Concept Questions 5: 背包問題
將有 N個物品,背包大小是 W,有數量限制的背包問題,在 O(WN)做出。
II
1.2 Exercies DP2
6. Codeforces 311B: Cats Transport
有 M 隻貓,分別在 Xi(>0)上,並在 Ti 時想要回家,你總共可以從 x= 0派 出 P 個回收員,走路速度1m/s,安排回收員的出發時間,使得貓咪的等待時 間和最小。(M ≤105, P ≤100)
7. SPOJ NKLEAVES: Leaves
有 N 堆葉子,分別在 1 ∼ N 的位置,並分別有自己的重量,你要把它往左 掃,堆成恰好 K 堆,對一堆葉子移動的代價為重量 × 距離,問最小代價。
(N ≤105, K ≤10)
8. TIOJ 1676: 烏龜疊疊樂
給你 N隻烏龜的違和度,你可以選一些連續的一段烏龜把他們融合成大烏龜:
(a) 每一段最多只能把 K 隻烏龜融合。
(b)融合起來的大烏龜違和度是裡面烏龜的違和度相加。
(c)X 隻烏龜融合會發出 X2 的和諧光。
(d) 違和度X 的在烏龜塔的第M 層時,會放出X∗(M −1)的違和光。
(e) 塔的違和度為違和光減和諧光。
最大化塔的違和度。(N, K ≤5∗105)
9. TIOJ 1449: 郵局設置問題 EXTREME
給你直線上的 N個點,選 K 個點當郵局,使得每個點到郵局的距離和最小。
(N, K ≤103)
10. Codeforces 321E: Ciel and Gondolas
有 N個人在排隊,把他們切成 K 份搭乘纜車,i, j 待在同一個纜車會有不舒 適感 uij,最小化不舒適感和。(N ≤4000, K ≤min(N,800))
11. IOI 2013 Prob. 3: Wombat
有一個 R∗C 個路口,呈一個棋盤狀,路口跟路口間有路,每條路上有個別數 量的王八。接下來,會有兩種操作:
(a) 把某一個路上的王八數量改變。最多500 次。
(b) 問從路口(0, A)到路口(R−1, B)最少要經過多少隻王八。最多2∗105 次。
(R ≤5000, C ≤200)
12. Step5 0148: 航海王 請參照這次模擬賽。
III