ACM第三次練習 1002

2021-07-11 13:35:54 字數 505 閱讀 6960

題意:求兩個字串的最長公共子串行。

思路:動態的方程在第乙個元素的相等的時,dp[0][0] = dp[-1][-1] + 1, 天哪,這肯定就會出錯了。在處理時可以選擇字元的讀取從第乙個位置開始,或者把 i 號字元的狀態儲存到i+1號位置去,這樣就從1號開始處理了,判定是就是 s1[i-1] == s1[j-1] ?

感想:弄了很久,熟練這個詞太難~

**:#include

#include

#include

#define max( a, b ) (a) > (b) ? (a) : (b)

using namespace std;

char s1[1005], s2[1005];

int dp[1005][1005];

int main()

else}}

printf( "%d\n", dp[len1][len2] );

}return 0;

}

ACM第三次練習 1001

題意 給出序列a 1 a 2 a 3 a n 計算子串行的最大總和。思路 最大子串行是要找出由數組成的一維陣列中和最大的連續子串行。方法是 只要前i項和還沒有小於0子串行就一直往後擴充套件,否則丟棄之前的子串行開始新的子串行,同時記錄各個子串行的和,最後取他們中的最大值。感想 第一道動態規劃題,感覺...

ACM第三次練習 1010

題意 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少種走法?思路 搜尋題的感覺,前面幾個數為1,1,2,3,第五個可以這樣考慮 有些走法是和到第四個一樣的,只是最後加了一步,這樣f 5 f 4 x,x表示其他的走法,到第五級時不是走兩步就是一步,一步剛才已經考慮...

ACM第三次練習 1012

題意 在2 n的乙個長方形方格中,用乙個1 2的骨牌鋪滿方格,輸入n 輸出鋪放方案的總數.思路 假設用arr i 表示2 i的方格一共有組成的方法數,我們知道arr 1 1 arr 2 2 現在假設我們已經知道了arr i 1 和arr i 2 求arr i 所謂arr i 不過是在2 i 1 的格...