#31953: basic


gpks556@gmail.com (陳怡然)

學校 : 不指定學校
編號 : 196352
來源 : [61.64.24.59]
最後登入時間 :
2022-09-17 16:42:23
c001. 10405 - Longest Common Subsequence -- UVa10405 | From: [61.64.24.59] | 發表日期 : 2022-09-02 00:19

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int LCS(const string& _1, const string& _2)
{
    vector<vector<int>> dp(_1.size() + 1, vector<int>(_2.size() + 1));
    for (size_t I1 = 1; I1 < dp.size(); I1++)
        for (size_t I2 = 1; I2 < dp.back().size(); I2++)
            if (_1[I1 - 1] == _2[I2 - 1])
                dp[I1][I2] = 1 + dp[I1 - 1][I2 - 1];
            else
                dp[I1][I2] = max(dp[I1][I2 - 1], dp[I1 - 1][I2]);

    return dp.back().back();
}

int main()
{
    for (string _1, _2; cin >> _1 >> _2; cout << LCS(_1, _2) << '\n');
    return 0;
}
 
#31954: Re: basic


gpks556@gmail.com (陳怡然)

學校 : 不指定學校
編號 : 196352
來源 : [61.64.24.59]
最後登入時間 :
2022-09-17 16:42:23
c001. 10405 - Longest Common Subsequence -- UVa10405 | From: [61.64.24.59] | 發表日期 : 2022-09-02 00:31

#include
#include
#include
using namespace std;

int LCS(const string& _1, const string& _2)
{
    vector> dp(_1.size() + 1, vector(_2.size() + 1));
    for (size_t I1 = 1; I1 < dp.size(); I1++)
        for (size_t I2 = 1; I2 < dp.back().size(); I2++)
            if (_1[I1 - 1] == _2[I2 - 1])
                dp[I1][I2] = 1 + dp[I1 - 1][I2 - 1];
            else
                dp[I1][I2] = max(dp[I1][I2 - 1], dp[I1 - 1][I2]);

    return dp.back().back();
}

int main()
{
    for (string _1, _2; cin >> _1 >> _2; cout << LCS(_1, _2) << '\n');
    return 0;
}

`cin >> _1 >> _2` should be `getline(cin, _1) && getline(cin, _2)`, for that LCS("somestring", "") must be 0



 
ZeroJudge Forum