文章

74

粉丝

0

获赞

94

访问

8.2k

头像
最长公共子序列(dp解法) 题解:
P1731 上海交通大学/中国矿业大学机试题
发布于2025年8月19日 14:28
阅读数 42

#include<bits/stdc++.h>
using namespace std;

int dp[1000 + 5][1000 + 5];

int main(){

    string a, b;
    while(cin >> a >> b){

       int lena = a.size();
       int lenb = b.size();

       for(int i = 1; i <= lena; i ++){
            for(int j = 1; j <= lenb; j ++){
                if(a[i-1] == b[j-1]) dp[i][j] = dp[i-1][j-1] + 1;
                else dp[i][j] = max(dp[i][j-1], dp[i-1][j]);
            }
       }

       cout << dp[lena][lenb] << endl;

    }

	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发