題目鏈接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4500
題意:有兩個序列,序列裏有不同的字母,每個字母的f值 =這個字母最後出現的位置-這個字母最先出現的位置。求把這兩個序列按原順序拼成一個序列的總f值最小是多少。
1、dp[i][j] 表示第一個序列的前i個和第二個序列的前j個進入了總序列。
2、狀態方程
dp[i+1][j] = min(dp[i+1][j],dp[i][j] + sum[i][j]);
其中sum[i][j]表示第一個序列的前i個和第二個序列的前j個進入了總序列之後,已經出現但還沒結束的字母。
3、注意邊界情況,最好是從0開始,用當前去更新[i+1][j]和[i][j+1]