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

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

CF競賽題目講解_CF1132F(區(qū)間DP)

2022-08-19 10:41 作者:Clayton_Zhou  | 我要投稿

https://codeforces.com/contest/1132/problem/F

題意:


給你一個串 s,每次可以花費 1 的代價刪去一個子串,要求子串的每一位為同一個字符。

例如abcddcba中的"dd"

求刪去整個串的最小代價。1≤|s|≤500


思路:


子狀態(tài)為dp[i][j]表示消除區(qū)間[i,j]內(nèi)所有字母所需的最小步數(shù)。


考慮兩種轉(zhuǎn)移。

1. 與上一個狀態(tài)相比,假設(shè)新的字母不能縮短步數(shù),那么代價直接加1。

dp[i][j]=min(dp[i+1][j],dp[i][j?1])+1。


2. 可以縮短步數(shù)。那么枚舉與哪一個字母相同。

如果c[i]==c[k],則dp[i][j]=min(dp[i][j],dp[i+1][k?1]+dp[k][j])。


在維護(hù)上有一個需要注意的細(xì)節(jié):因為第一種轉(zhuǎn)移需要dp[i+1][j]和dp[i][j?1]的數(shù)據(jù),所以我們需要先枚舉j再枚舉i,同時i從大到小枚舉。


CF競賽題目講解_CF1132F(區(qū)間DP)的評論 (共 條)

分享到微博請遵守國家法律
开远市| 扎兰屯市| 晋州市| 辽宁省| 大竹县| 乃东县| 洛浦县| 龙陵县| 都匀市| 巴里| 武山县| 巍山| 汉沽区| 乐亭县| 靖州| 银川市| 玛曲县| 云霄县| 宁武县| 宝清县| 永清县| 彩票| 柳河县| 天津市| 石河子市| 金堂县| 如皋市| 巴里| 沙湾县| 依兰县| 富蕴县| 霍林郭勒市| 奉贤区| 页游| 普宁市| 庐江县| 且末县| 阿拉善左旗| 诸暨市| 武义县| 米林县|