国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

AcWing1089. 烽火傳遞(單調(diào)隊列優(yōu)化DP)

2023-02-26 22:49 作者:ZzzzH777  | 我要投稿


https://www.acwing.com/problem/content/description/1091/

一.說人話:

給定長度為 n 的數(shù)組 w , w[i] 表示第 i 個元素的權(quán)值.

每個元素只有選和不選兩種情況

找到一種元素的選擇方案,滿足如下條件

條件1:相鄰被選擇的元素間相差至多相隔 m?1 個 不選的元素

條件2:所有被選擇的元素權(quán)值和最小

二.分析:

典型的最優(yōu)解問題,考慮使用dp求解

嘗試把答案拆分成一個個子集

狀態(tài)表示: dp[i] 表示 在前 i 個元素范圍中? 滿足條件1且選擇第 i 個元素 的所有當(dāng)前方案 中的最小權(quán)值和

狀態(tài)劃分: 已知 最后一個選擇的元素是第 i 個,根據(jù)倒數(shù)第二個被選擇的元素的位置( 倒數(shù)第二個元素從第 i-m 到第 i-1 個?), 可以不重不漏的劃分為多個子集.

狀態(tài)轉(zhuǎn)移方程:? ? ? dp[i] = min( dp[i-m], dp[i-m+1] ... dp[i-2], dp[i-1] ) + w[i]? ? ( i-m > = 1 )

最終滿足題意的答案為

三.使用單調(diào)隊列進行優(yōu)化:

在這個一維狀態(tài)計算和轉(zhuǎn)移的過程中,求解?min(?dp[i-m], dp[i-m+1] ... dp[i-2],?dp[i-1]?)正好屬于移動固定長度區(qū)間最小值問題.

因此可以使用 單調(diào)隊列 進行優(yōu)化

需要注意的是,從小到大處理狀態(tài)dp[i]時

dp[i]對應(yīng)的新的區(qū)間的左端點為 i-m ,右端點 為 i-1

也就是說新滑入元素為 dp[i-1] , 新滑出元素為dp[i-m-1]

四.關(guān)于最終解的問題:

一般的dp問題的最終解為 dp[n]

然而,在本題中 dp[n] 表示從1->n?滿足條件1且選擇第 n 個元素?的所有當(dāng)前方案 中的最小權(quán)值和

但是最優(yōu)方案的第n個元素并不一定需要選擇,最后一個選擇的元素可能為 第 n-m+1 到 第n個.

所以最優(yōu)方案應(yīng)當(dāng)是 dp[n-m+1]...dp[n-1],dp[n] 的最小值

當(dāng)然,還有一種碼量更簡單的解決辦法,假設(shè)存在第n+1個元素,但權(quán)值為0

dp[n+1]表示在前?i+1?個元素范圍中??滿足條件1且選擇第?i+1?個元素?的所有當(dāng)前方案 中的最小權(quán)值和

滿足前i+1個元素滿足題意,必然前i個滿足題意,又因為第i+1個權(quán)值為0,不影響最終解的答案

因此最終答案為dp[n+1]

四.代碼



AcWing1089. 烽火傳遞(單調(diào)隊列優(yōu)化DP)的評論 (共 條)

分享到微博請遵守國家法律
邵东县| 南川市| 普兰县| 香港| 深圳市| 徐闻县| 东源县| 汨罗市| 喀喇| 永春县| 台东市| 普宁市| 景东| 永登县| 南部县| 盘山县| 崇信县| 武陟县| 唐山市| 株洲县| 界首市| 拉萨市| 巴塘县| 合肥市| 黄陵县| 芜湖市| 鱼台县| 深水埗区| 汉寿县| 韶山市| 桂平市| 外汇| 林州市| 长武县| 凌海市| 开平市| 化隆| 凉城县| 厦门市| 上思县| 沂源县|