40492023-03-10 23:37:22zsomborRegexcpp17Hibás válasz 24/100280ms216560 KiB
#include <iostream>
#include <vector>
using namespace std;

string a, b;
int n, m, I, J, ans;
vector <vector<int>> dp(3e3, vector<int>(3e3, 1e9));
vector <vector<int>> mni(3e3, vector<int>(3e3, 0));
vector <vector<int>> mnj(3e3, vector<int>(3e3, 0));

void solve() {
    cin >> a >> b;
    n = a.size();
    m = b.size();
    a = "a" + a;
    b = "a" + b;
    ans = 1e9;
    dp[0][0] = n + m + 3;
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= m; j++) {
            I = (dp[mni[i - 1][j]][mnj[i - 1][j]] < dp[mni[i][j - 1]][mnj[i][j - 1]] ? mni[i - 1][j] : mni[i][j - 1]);
            J = (dp[mni[i - 1][j]][mnj[i - 1][j]] < dp[mni[i][j - 1]][mnj[i][j - 1]] ? mnj[i - 1][j] : mnj[i][j - 1]);
            mni[i][j] = I;
            mnj[i][j] = J;
            if (a[i] != b[j]) continue;
            dp[i][j] = (a[i - 1] == b[j - 1] ? dp[i - 1][j - 1] - 1 : dp[I][J] + 2);
            if (i == n && j == m) dp[i][j] -= 3;
            mni[i][j] = (dp[i][j] < dp[I][J] ? i : I);
            mnj[i][j] = (dp[i][j] < dp[I][J] ? j : J);
        }
    }
    cout << dp[mni[n][m]][mnj[n][m]] << endl;
}

int main()
{
    int t;
    cin >> t;
    for (int i = 0; i < t; i++) solve();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva71ms213624 KiB
2Elfogadva92ms213940 KiB
subtask20/9
3Hibás válasz104ms214156 KiB
4Hibás válasz207ms214372 KiB
5Hibás válasz231ms214584 KiB
6Hibás válasz229ms214792 KiB
7Hibás válasz275ms214752 KiB
8Hibás válasz248ms214748 KiB
subtask311/11
9Elfogadva90ms214740 KiB
10Elfogadva90ms214744 KiB
11Elfogadva72ms214816 KiB
12Elfogadva90ms214740 KiB
13Elfogadva90ms215000 KiB
14Elfogadva72ms215324 KiB
subtask413/13
15Elfogadva90ms215644 KiB
16Elfogadva92ms215376 KiB
17Elfogadva92ms215380 KiB
18Elfogadva92ms215452 KiB
19Elfogadva72ms215520 KiB
20Elfogadva90ms215848 KiB
subtask50/24
21Elfogadva92ms216056 KiB
22Hibás válasz75ms216248 KiB
23Elfogadva92ms216244 KiB
24Hibás válasz75ms216460 KiB
25Hibás válasz92ms216348 KiB
26Hibás válasz75ms216224 KiB
subtask60/43
27Elfogadva107ms216376 KiB
28Hibás válasz221ms216232 KiB
29Hibás válasz225ms216232 KiB
30Hibás válasz277ms216304 KiB
31Hibás válasz187ms216348 KiB
32Hibás válasz231ms216300 KiB
33Hibás válasz280ms216560 KiB
34Hibás válasz261ms216512 KiB