區間dp NYOJ還是回文

2021-08-19 03:01:12 字數 700 閱讀 7611

/*

區間dp

題意:插入或刪除字元來還原成回問串,每個字元的插入和刪除話費不一樣

問最小花費

思路:dp[j][i] 代表j到i區間的最小花費

以i為區間右端點,然後j從i-1往0遍歷,去求dp[j][i]的最小值

在求dp[j][i]的時候,我們已經求得了dp[j][i-1] dp[j+1][i]

選擇兩者之中小的乙個,再加上對應的字元的最小價值cot[i]或cot[j]

如果s[i] == s[j] ,那我們就不需要刪除或增加字元,

dp[j][i] 與 dp[j+1][i-1] 選乙個小的賦值給 dp[j][i]即可

*/# include

# include

# include

# include

# include

# define maxn 2005

using

namespace

std;

int dp[maxn][maxn],cot[27];

int main(void)

for(int i=1; i//往前推進

for(int j=i-1; j>=0; --j)

}printf("%d\n",dp[0][m-1]);

}return

0;}

NYOJ1023 還是回文(區間dp)

分析 這道題是乙個簡單區間的dp,狀態定義為dp i j i 到 j 這個區間形成回文的最小花費,分兩種情況討論 s i s j dp i j dp i 1 j 1 s i s j dp i j min dp i j 1 cost s j a dp i 1 j cost s i a cost tt ...

njoj1023 還是回文(區間dp

剛開始不理解狀態方程,後來問群上明神說一句數學歸納法的道理,覺得對dp又了解了一點。狀態方程 dp i j min dp i 1 j a i dp i j 1 a j 當str i str j dp i j min dp i j dp i 1 j 1 其中dp i j 表示從i j的最小花費,a i...

NYOJ 1023 還是回文 區間dp

時間限制 2000 ms 記憶體限制 65535 kb 難度 3描述 判斷回文串很簡單,把字串變成回文串也不難。現在我們增加點難度,給出一串字元 全部是小寫字母 新增或刪除乙個字元,都會產生一定的花費。那麼,將字串變成回文串的最小花費是多少呢?輸入多組資料 第乙個有兩個數n,m,分別表示字元的種數和...