文章

35

粉丝

134

获赞

130

访问

32.2k

头像
最长公共子序列 题解:动态规划问题AC
P1731 上海交通大学/中国矿业大学机试题
发布于2024年1月21日 20:00
阅读数 1.1k

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define N 1001
  4. int dp[N][N];
  5. int main(){
  6. string s1,s2;
  7. while(cin>>s1){
  8. cin>>s2;
  9. for(int i=0;i<=s1.size();i++){
  10. for(int j=0;j<=s2.size();j++){
  11. if(i==0||j==0){
  12. dp[i][j] = 0;
  13. continue;
  14. }
  15. if(s1[i-1]==s2[j-1]){
  16. dp[i][j] = dp[i-1][j-1]+1;
  17. }else{
  18. dp[i][j] = max(dp[i][j-1],dp[i-1][j]);
  19. }
  20. }
  21. }
  22. cout<<dp[s1.size()][s2.size()]<<endl;
  23. }
  24. }

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发