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

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

CF Round #870 (Div. 2) D. Running Miles 貪心 + 區(qū)間dp

2023-06-04 10:50 作者:StepfenShawn  | 我要投稿

感覺好久沒寫dp了,藍(lán)橋決賽前寫點(diǎn)?dp 找找?feel??(doge)。。。

題目地址: https://codeforces.com/contest/1826/problem/D

題目大意: 有一個(gè)序列,求一個(gè)區(qū)間使得區(qū)間前三大的值減去(r-l)的值最大,求最大值

思路: 可以使用貪心的思想考慮選擇左右邊界[l, r], 其中 a[l], a[r] 是改區(qū)間前三大值的其中兩個(gè), 當(dāng)然,我們可以假設(shè)選取右端點(diǎn) r 作為前三大值的其中一個(gè), 然后通過 dp 枚舉答案, 那么可以設(shè)置狀態(tài):

dp[i][0] : 從 i 往前選取 0 個(gè)數(shù)時(shí)得到的最大值

dp[i][1] :?從 i 往前選取?1?個(gè)數(shù)時(shí)得到的最大值

dp[i][2] :?從 i 往前選取 2?個(gè)數(shù)時(shí)得到的最大值

dp[i][3]?:?從 i 往前選取 3?個(gè)數(shù)時(shí)得到的最大值

下面我們來推導(dǎo)狀態(tài)轉(zhuǎn)移方程:

對(duì)于 dp[i][0], 顯然有 dp[i - 1][0]

dp[i][1], 我們可以從當(dāng)前為開始選, 亦或者是從上一個(gè)狀態(tài)轉(zhuǎn)移過來的(也就是dp[i - 1][1],?又因?yàn)閰^(qū)間變長(zhǎng)了, 所以為 dp[i - 1][1] - 1):

dp[i][1] = max(dp[i - 1][0] + a[i], dp[i - 1][1] - 1)

同樣:

dp[i][2] = max(dp[i - 1][1] + a[i] - 1, dp[i - 1][2] - 1)

dp[i][3] = max(dp[i - 1][2] + a[i] - 1, dp[i - 1][3] - 1)

于是我們就可以枚舉右端點(diǎn) r (從 3 開始) 得到最大值了

時(shí)間復(fù)雜度: O(n%20):


CF Round #870 (Div. 2) D. Running Miles 貪心 + 區(qū)間dp的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
纳雍县| 建阳市| 沂源县| 盐山县| 东乌珠穆沁旗| 沾化县| 内乡县| 沿河| 宜阳县| 象州县| 永福县| 汝南县| 宁都县| 青冈县| 包头市| 丹寨县| 佛冈县| 中牟县| 盘锦市| 剑河县| 岚皋县| 商丘市| 黑龙江省| 乌苏市| 开阳县| 崇义县| 肃南| 岳阳县| 高碑店市| 南宁市| 丹东市| 澄迈县| 锦州市| 天长市| 罗平县| 惠安县| 广安市| 沁水县| 婺源县| 桑日县| 房山区|