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

歡迎光臨散文網 會員登陸 & 注冊

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]內所有字母所需的最小步數。


考慮兩種轉移。

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

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


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

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


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


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

分享到微博請遵守國家法律
明星| 郑州市| 金秀| 茂名市| 会泽县| 察雅县| 府谷县| 仁化县| 蒙城县| 溧水县| 长岭县| 彩票| 绥棱县| 陈巴尔虎旗| 梨树县| 吉木萨尔县| 农安县| 察隅县| 龙口市| 柏乡县| 柳江县| 张家口市| 锦屏县| 缙云县| 合阳县| 苍山县| 托里县| 通河县| 察雅县| 泸水县| 鄂伦春自治旗| 太原市| 柘城县| 西宁市| 沈阳市| 耒阳市| 宁强县| 上林县| 横峰县| 信宜市| 宁化县|