无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ó)家法律
怀宁县| 舒城县| 三江| 始兴县| 海原县| 甘南县| 夏邑县| 双鸭山市| 博湖县| 汤原县| 横峰县| 五指山市| 富民县| 津南区| 法库县| 张家港市| 通州市| 姜堰市| 铁力市| 北宁市| 沽源县| 北京市| 武清区| 杭锦后旗| 调兵山市| 万荣县| 大港区| 西吉县| 普定县| 弥勒县| 清远市| 阜阳市| 太原市| 龙海市| 太仆寺旗| 隆化县| 马龙县| 潍坊市| 山西省| 新营市| 松滋市|