1. 程式人生 > >Hdu3057(劃分類DP+基礎斜率優化)

Hdu3057(劃分類DP+基礎斜率優化)

題目大意

a [ 1.. n ] a[1..n] 劃分成若干個區間,每段區間 [

i , j ] [i , j] 的代價為 ( c [
i ] + c [ i + 1 ] +
c [ i + 2 ] + + c [ j ] ) 2 + m (c[i] + c[i + 1] + c[i + 2] + … + c[j]) ^ 2 + m
。其中 m m 為常數。
求最小的總代價和。
a [ i ] > 0 a[i] > 0
n 5 1 0 4 n ≥ 5 * 10 ^ 4


思路

首先,這是個很明顯的劃分類 D P DP
直接上狀態: f [ i ] f[i] 表示前i個數的最小代價。
易得 f [ i ] = m i n f [ j ] + ( s [ i ] s [ j ] ) 2 + m f[i] = min{f[j] + (s[i] - s[j]) ^ 2 + m}
初值: f [ 0 ] = 0 f[0]=0
終值: f [ n ] f[n]


-----------華------------麗------------麗------------的------------分------------割------------線-----------


然後,我們發現,這是個非常經典的 1 D / 1 D 1D/1D 動態規劃
顯然是無法通過 5 1 0 4 5*10^4 級別的資料。
考慮優化,對於一道一維狀態的 D P DP 題,優化方向只有一個——轉移。
如何減少重複或不必要的列舉呢?
1 < j 1 < j 2 < i 1 < j_1 < j_2 < i
則對於 i i 的決策, j 2 j_2 j 1 j_1 優等價於滿足
f [ j 2 ] + ( s [ i ] s [ j 2 ] ) 2 + m < f [ j 1 ] + ( s [ i ] s [ j 1 ] ) 2 + m f[j2] + (s[i] - s[j2]) ^ 2 + m < f[j1] + (s[i] - s[j1]) ^ 2 + m
簡單的開啟並整理過後就得到了
( f [ j 2 ] f [ j 1 ] ) + ( s [ j 2 ] 2 s [ j 1 ] 2 ) (f[j_2]-f[j_1]) + (s[j_2] ^ 2 - s[j_1] ^ 2)
--------------------------------------------------- < s [ i ] < s[i]
( s [ j 2 ] s [ j 1 ] ) 2 (s[j2] - s[j1]) * 2
設不等式左邊 = g ( j 1 , j 2 ) =g(j_1 , j_2)
先考慮用代數
g ( j 1 , j 2 ) > g ( j 2 , j 3 ) g(j_1 , j_2) > g(j_2 , j_3) 則由上面的推論可以知道對於i的決策, j 1 j_1 j 2 j_2 優, j 3 j_3 j 2 j_2 優,即 j 2 j_2 永遠不可能成為最優的轉移
又因為 a [ i ] > 0 a[i] > 0 ,即 s [ i ] < s [ i + 1 ] < < s [ n ] s[i] < s[i + 1] < … < s[n]
j 2 j_2 永遠不可能成為今後的最優轉移
因此,我們可以通過不轉移形如 g ( j 1 , j 2 ) > g ( j 2 , j 3 ) g(j_1,j_2)>g(j_2,j_3) j 2 j_2

相關推薦

bzoj 1010 [HNOI2008]玩具裝箱toyDP斜率優化

P 教授要去看奧運,但是他舍不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維 容器中。P教授有編號為1...N的N件玩具,第i件玩具經過壓縮後變成一維長度為Ci.為了方便整理,P教授要求在一個一維容器中的玩具編號是連續的。 同時如果一個

2016年ACM/ICPC瀋陽賽區 I題樹形dp+斜率優化

題目連結:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5642 題意:給你n個點,n-1條邊的樹。

P2120 [ZJOI2007]倉庫建設dp+斜率優化

思路 首先暴力DP顯然,可以得20分 加上一個字首和優化,可以得到40分 然後上斜率優化 設\(sum_i\)為\(\sum_{1}^iP_i\),\(sump_i\)為\(\sum_{1}^{i}P_i\times Pos_i\) 則決策j優於決策i的條件可以表示為 \[ dp_j+C_t+po

codeforce-311b:Cats Transportdp+斜率優化

題目大意:有m只貓,他們分別會在某個時間在某座山上等飼養員來接它。你有p個飼養員,問你怎麼分配飼養員的出發時間可以讓所有貓等待的時間最小。解題思路:首先要預處理,貓到達某座山的時間減去飼養員從起始點到這座山的時間。文字難以說明,舉個例子,起點是第一座山,還有山2還山3,山1到

BZOJ-1010-[HNOI2008]玩具裝箱toy斜率優化

-s 要去 sca sigma open closed splay 填充物 hide Description   P教授要去看奧運,但是他舍不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。P教

【Bsoj2684】鋸木廠選址斜率優化

任務 post def sin solution name line () des Description 從山頂上到山底下沿著一條直線種植了n棵老樹。當地的政府決定把他們砍下來。為了不浪費任何一棵木材,樹被砍倒後要運送到鋸木廠。木材只能按照一個方向運輸:朝山下運。山腳下有

1010: [HNOI2008]玩具裝箱toy斜率優化

教授 最小 sta 長度 輸入 常量 limit ... col 1010: [HNOI2008]玩具裝箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 12280 Solved: 5277[Submit][St

3156: 防禦準備斜率優化

return getchar() == div lan 前綴 php 查點 準備 鏈接 思路   斜率優化。   f[i] 表示i點建檢查點的花費。   f[i] = f[j] + i*(i-j-1)-(s[i-1]-s[j]) + a[i],從j轉移,s為前綴和

【BZOJ4654】【NOI2016】國王飲水記動態規劃,斜率優化

code 奇怪 while lib show ima double 優化 .com 【BZOJ4654】【NOI2016】國王飲水記(動態規劃,斜率優化) 題面 BZOJ 洛谷 題解 首先肯定是找性質。 明確一點,比\(h_1\)小的沒有任何意義。 所以我們按照\(h\)排

【BZOJ3203】保護出題人動態規劃,斜率優化

現在 bzoj3203 d+ while 我們 register 攻擊 nod http 【BZOJ3203】保護出題人(動態規劃,斜率優化) 題面 BZOJ 洛谷 題解 在最優情況下,肯定是存在某只僵屍在到達重點的那一瞬間將其打死 我們現在知道了每只僵屍到達終點的時間,因

洛谷P3628 [APIO2010]特別行動隊斜率優化

new open 同類項 freopen -- www. pro ios check 傳送門 先寫出轉移方程$$dp[i]=max\{dp[j]+a*(sum[i]-sum[j])^2+b*(sum[i]-sum[j])+c\}$$ 假設$j$比$k$更優,則有$

洛谷P4072 [SDOI2016]征途斜率優化

傳送門 tps double nbsp ble esp 就是 int turn 傳送門 推式子(快哭了……)$$s^2*m^2=\sum _{i=1}^m (x_i-\bar{x})^2$$ $$s^2*m^2=m*\sum _{i=1

P3084 [USACO13OPEN]照片Photo dp+單調佇列優化

題目連結:傳送門 題目: 題目描述 Farmer John has decided to assemble a panoramic photo of a lineup of his N cows (1 <= N <= 200,000), which, as always

HDU 3401 TradeDP + 單調佇列優化

任重而道遠 Recently, lxhgww is addicted to stock, he finds some regular patterns after a few days' study. He forecasts the next T days' stock market. On

HDU 3401 Tradedp+單調佇列優化

Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5843  &

BZOJ4700 適者貪心+cdq分治+斜率優化

  首先考慮怎麼安排攻擊順序。顯然如果攻擊了某臺兵器就應該一直連續攻擊直到將其破壞,破壞所需時間可以直接算出來,設其為b。假設確定了某個破壞順序,如果交換相鄰兩個兵器,顯然不會對其他兵器造成影響,兩種順序的代價則分別為a1(b1-1)+a2(b1+b2-1)和a1(b1+b2-1)+a2(b2-1),那麼當a

Codeforces 1077F2 Pictures with Kittens (hard version)DP+單調佇列優化

題目連結:Pictures with Kittens (hard version) 題意:給定n長度的數字序列ai,求從中選出x個滿足任意k長度區間都至少有一個被選到的最大和。 題解:資料量5000,O(n^3)的DP不適用。需要加個單調佇列優化。 注意每次是從$[i-k,i)$區間,選擇加上ai。每次

1.CNN圖片單標籤分類基於TensorFlow實現基礎VGG16網路

本文所使用的開源資料集(kaggle貓狗大戰): www.kaggle.com/c/dogs-vs-c… 國內百度網盤下載地址: pan.baidu.com/s/12ab32UNY… 利用本文程式碼訓練並生成的模型(對應專案中的model資料夾): pan.baidu.com/s/1tBkVQKoH

洛谷4983 忘情WQS二分斜率優化

題目 程式碼 WQS二分+斜率優化 公式簡化看這https://www.luogu.org/blog/xnzy1314/wang-qing-ti-xie-post 其他就很套路了,只要在f轉移時