南陽理工學院動態規劃專題 回文字串

2021-06-17 20:08:33 字數 853 閱讀 5519

這個問題使用動態規劃求解,dp[i][j]表示字串下標為i的字元和下標為j的字元區間內構成回文所需加入的最少的字串。

當str[i]==str[j]時,則dp[i][j]=dp[i+1][j-1],當str[i]!=str[j]時,dp[i][j]=min(dp[i+1][j]+1,dp[i][j-1]+1),初始化時候,d[i][i]=0,d[i][i+1]=1(這裡真是糾結了乙個多小時,我還以為我轉移方程錯了!!!)。輸出dp[0][strlen(str)-1].

#include#include#includeusing namespace std;

char str[1001];

int dp[1001][1001];

int main()

{ int cas;

cin>>cas;

while(cas--)

{cin>>str;

int l=strlen(str);

for(int i=0;i時間限制:

3000 ms  |            記憶體限制:

65535 kb

難度: 4

描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如"aba"。當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字串。

輸入第一行給出整數n(0

輸出每行輸出所需新增的最少字元數

樣例輸入

1ab3bd

樣例輸出

2

**ioi 2000

上傳者hzyqazasdf

南陽理工學院動態規劃專題 回文字串

這個問題使用動態規劃求解,dp i j 表示字串下標為i的字元和下標為j的字元區間內構成回文所需加入的最少的字串。當str i str j 時,則dp i j dp i 1 j 1 當str i str j 時,dp i j min dp i 1 j 1,dp i j 1 1 初始化時候,d i i...

南陽理工學院動態規劃專題 括號問題2 總結

南陽理工學院動態規劃專題括號問題2總結 這道題目初看起來很簡單,但是我從看題到思考,到做題ac足足花了乙個晚上加乙個下午的時間,我也有到網上找 的習慣,但是都是遞迴,特別蛋疼,我想用正統的動歸去做,於是就開始了不一樣的艱難探索之旅。分析過程 使用char str 1001 這個字元陣列儲存最初輸入的...

南陽理工學院ACM完全覆蓋

描述 有一天小董子在玩一種遊戲 用2 1或1 2的骨牌把m n的棋盤完全覆蓋。但他感覺遊戲過於簡單,於是就隨機生成了兩個方塊的位置 可能相同 標記一下,標記後的方塊不用覆蓋。還要注意小董子只有在m n的棋盤能被完全覆蓋後才會進行標記。現在他想知道 如果標記前m n的棋盤能被完全覆蓋,標記後的棋盤是否...