最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)的評論 (共 條)

分享到微博請遵守國家法律
唐海县| 邹城市| 抚远县| 扎鲁特旗| 荥经县| 义马市| 漾濞| 福清市| 祁东县| 柳河县| 宣汉县| 新乐市| 常山县| 合江县| 萨迦县| 汾西县| 鄂州市| 大姚县| 炎陵县| 西畴县| 合作市| 宜兰县| 司法| 绥中县| 电白县| 师宗县| 白水县| 祥云县| 华坪县| 五华县| 罗定市| 昂仁县| 崇左市| 电白县| 普宁市| 广宁县| 来宾市| 徐闻县| 宿迁市| 深泽县| 旬阳县|