2017-09-02 17:07:42
writer:pprp
通过这个题温习了一下刚学的LCS
代码如下:
/* @theme:hdu1159 @writer:pprp @begin:17:01 @end:17:06 @declare:LCS的裸题,温习一下 @error:从1开始读入的话,用strlen也要从1开始测才可以 @date:2017/9/2 */ #include <bits/stdc++.h> using namespace std; char s1[1010],s2[1010]; int dp[1010][1010]; int main() { //freopen("in.txt","r",stdin); while(~scanf("%s%s",s1+1,s2+1)) { memset(dp,0,sizeof(dp)); int n = strlen(s1+1); int m = strlen(s2+1); for(int i = 1; i <= n ;i++) { for(int j = 1; j <= m ; j++) { if(s1[i] == s2[j]) dp[i][j] = dp[i-1][j-1] + 1; else dp[i][j] = max(dp[i-1][j],dp[i][j-1]); } } cout << dp[n][m] << endl; } return 0; }
时间: 2024-10-04 17:23:02