zoukankan      html  css  js  c++  java
  • sicily LCS

    直接用递归做了一下,超时了,可能要再加上记忆化搜索?不会...

    然后再用动态规划就过了...

    http://soj.sysu.edu.cn/show_problem.php?pid=1002&cid=1762

     1 //直接递归,tle
     2 #include <iostream>
     3 #include <cstdio>
     4 #include <cstring>
     5 
     6 using namespace std;
     7 
     8 char s1[1001];
     9 char s2[1001];
    10 
    11 int LCS(char s1[], char s2[], int len1, int len2)
    12 {
    13     if(len1 == 0 || len2 == 0)
    14         return 0;
    15     if(s1[len1-1] == s2[len2-1])
    16         return 1+LCS(s1, s2, len1-1, len2-1);
    17     else
    18         return max(LCS(s1, s2, len1-1, len2), LCS(s1, s2, len1, len2-1));
    19 }
    20 
    21 int main()
    22 {
    23     while(cin >> s1 >> s2)
    24     {
    25         int len1 = strlen(s1);
    26         int len2 = strlen(s2);
    27         cout << LCS(s1, s2, len1, len2) << endl;
    28     }
    29     return 0;
    30 }
     1 //动规,思路是一样的
     2 #include <iostream>
     3 #include <cstring>
     4 #include <cstdio>
     5 
     6 using namespace std;
     7 
     8 char s1[1001];
     9 char s2[1001];
    10 int dp[1001][1001];
    11 
    12 int LCS(char s1[], char s2[])
    13 {
    14     int len1 = strlen(s1);
    15     int len2 = strlen(s2);
    16     memset(dp, 0, sizeof(dp));
    17     
    18     for(int i=1; i<=len1; i++)
    19     {
    20         for(int j=1; j<=len2; j++)
    21         {
    22             if(s1[i-1] == s2[j-1])
    23                 dp[i][j] = dp[i-1][j-1] + 1;
    24             else
    25                 dp[i][j] = max(dp[i-1][j], dp[i][j-1]);
    26         }
    27     }
    28     return dp[len1][len2];
    29 }
    30 
    31 int main()
    32 {
    33     while(cin >> s1 >> s2)
    34     {
    35         cout << LCS(s1, s2) << endl;
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    “扫一扫”模型
    CenterNet算法介绍
    PyTorch搭载的CenterNet算法环境配置
    软件评测
    代码规范制定
    寒假作业 2/2
    软件工程实践总结&个人技术博客
    React 请求拦截与接口统一和模拟解决方案
    软件评测
    结对作业二
  • 原文地址:https://www.cnblogs.com/dominjune/p/4375276.html
Copyright © 2011-2022 走看看