日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动态规划训练11 [String painter HDU - 2476]

發布時間:2023/12/3 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动态规划训练11 [String painter HDU - 2476] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

String painter

?HDU - 2476?


題意:


我認為這是一道比較難的問題,自己想了很久,沒有想出來怎么做,可能是因為思維僵化吧,一直在想怎么直接的由A變到B,事實上,可以有中間橋梁連接A和B,他們之間的關系可能往往沒有我們想的那么簡單。

依最簡單的思路,我們定義ans[i]代表區間[1...i]處,A直接變到B所需的最少次數。那么狀態轉移方程可以這樣寫

有幾種情況

(1)如果strA[i] == strB[i]的話,那么存在著一個轉移方程就是 ans[i] = min(ans[i],ans[i-1]);

(2)否則的話,那么第i個位置的字符,一定會被刷掉,此外,刷掉第i個位置的區間長度可能大于1,假設這個區間刷掉了區間[x,i]內的數,并把區間strA[x...i]內的數都刷成了strB[i]

這樣的話就相當于把區間[x...i]由空白串直接變成strB[x...i],剩下的區間[1...x-1]可以用ans[x-1]轉移過來

也就是說,轉移方程寫成ans[i] = min(ans[i],ans[x-1] + dp[x][i]),dp[x][i]表示從空白串直接變成strB[x][i]所需要用的最小次數。

下面我們的重要目標就是求出dp[i][j]來

其實到這里還是不太好想。

最右邊的字符strB[j]一定是最先被刷出來的

(1)如果strB[i] == strA[j],那么在一開始刷刷出strB[j]的時候,順手就可以把strB[i]也給刷出來,所以不需要額外的費用

dp[i][j] = dp[i+1][j]?

(2)然后我們把區間分成兩塊進行轉移(非常常規的想法)

dp[i][j] = min(dp[i][j],dp[i][k]+dp[k+1][j]);


代碼(注意我在前面的區間寫的是全閉,而在代碼里的區間寫法是左閉右開):

#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int MAX = 106; char strA[MAX]; char strB[MAX]; int dp[MAX][MAX]; int ans[MAX]; int n; int main(){while(scanf("%s %s",strA,strB) != EOF){memset(dp,0,sizeof(dp));memset(ans,0,sizeof(ans));n = strlen(strA);for(int i = 0;i < n;i++) dp[i][i+1] = 1;for(int len = 2;len <= n;len++){for(int i = 0;i + len <= n;i++){dp[i][i+len] = dp[i+1][i+len] + (strB[i] == strB[i+len-1]?0:1);for(int j = i+1;j < i+len;j++){dp[i][i+len] = min(dp[i][i+len],dp[i][j]+dp[j][i+len]);} }}ans[0] = strA[0] == strB[0] ? 0:1;for(int i = 1;i < n;i++){ans[i] = dp[0][i+1];if(strB[i] == strA[i])ans[i] = min(ans[i],ans[i-1]);for(int j = 0;j < i;j++){ans[i] = min(ans[i],ans[j] + dp[j+1][i+1]);}}cout<<ans[n-1]<<endl;}return 0; }

總結

以上是生活随笔為你收集整理的动态规划训练11 [String painter HDU - 2476]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av丁香| 色呦呦视频 | 天天天天天天天天干 | 澳门久久久 | 久久香蕉精品视频 | 麻豆免费网站 | 黄页网站视频在线观看 | 久久精品视 | 在线看成人片 | 激情综合视频 | www在线观看视频 | 欧美日p视频| 正在播放木下凛凛88av | 中文字幕免费在线 | 中文字幕看片 | 国产毛片网 | av动漫免费看 | 欧美一级一片 | 日韩精品久久久久久久酒店 | 精品人妻av在线 | 亚洲一区影视 | 97久久精品人人澡人人爽 | 免费在线观看一区二区 | 丰满少妇在线观看资源站 | 亚洲天码中字 | 久久久久久少妇 | 中文字幕欧美视频 | 91精品国产麻豆 | 免费婷婷 | 超碰在线免费公开 | 丝袜熟女一区二区三区 | 久久久久久久黄色片 | 亚洲精品国产精品国自产观看浪潮 | 日本视频黄 | 久草播放 | 天堂影视av| 日本老妇高潮乱hd | 97免费视频观看 | 久久久久精 | 亚色影库| 国产精品久久午夜夜伦鲁鲁 | 日韩国产欧美一区二区 | 91高清无打码 | 中文字幕av久久爽一区 | 亚洲性欧美色 | 女人17片毛片60分钟 | 色日本在线 | 和漂亮岳做爰3中文字幕 | 野花社区视频在线观看 | 熟妇人妻无乱码中文字幕真矢织江 | 亚洲人网站 | 久久国产视频精品 | 成年人免费看毛片 | eeuss一区二区 | 祥仔视觉av | 免费看日产一区二区三区 | 91n视频| 牛牛在线免费视频 | 成年人爱爱视频 | 日本精品中文字幕 | 国偷自产av一区二区三区麻豆 | 最新中文字幕在线 | 欧美日韩激情在线 | 亚洲欧洲精品一区 | 奇米二区| 四川丰满妇女毛片四川话 | 日日射天天干 | 激情久久久 | 超碰pron | 99精品综合 | 91精选视频 | 一级黄视频 | 日本黄色免费大片 | av直接看| 五月天狠狠干 | 国产激情片| 永久免费国产 | 美女扒开内裤让男人捅 | 国产精品一区久久久 | 神马午夜不卡 | 亚洲国产理论 | 久久久久9999 | 亚洲国产极品 | 色综合狠狠| av福利片 | 成人免费毛片糖心 | 一区二区三区不卡视频 | 欧美嫩草| 日本成人精品 | 日本一区二区不卡在线观看 | 国产一区二区91 | 91国自产精品中文字幕亚洲 | a午夜| 亚洲国产精品免费在线观看 | 中文字幕免费观看视频 | 中文av资源 | 日本免费一区二区三区 | 无人码人妻一区二区三区免费 | 九九热av|