682D - Alyona and Strings - CodeForces Solution


dp strings *1900

Please click on ads to support us..

C++ Code:

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

ll m, n, k, f[1005][1005][15][2];
string s, t;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    cin >> n >> m >> k >> s >> t;
    s = '#'+s;
    t='#'+t;
    for(int i=0; i<=n; i++){
        for(int j=0; j<=m; j++){
            for(int x=0; x<=k; x++){
                for(int y=0; y<=1; y++){
                    f[i][j][x][y] = -1;
                }
            }
        }
    }
    f[0][0][0][0] = 0;
    for(int i=0; i<=n; i++){
        for(int j=0; j<=m; j++){
            for(int x=0; x<=k; x++){
                for(int y=0; y<=1; y++){
                    if(f[i][j][x][y] == -1) continue;
                    f[i+1][j][x][0] = max(f[i+1][j][x][0], f[i][j][x][y]);
                    f[i][j+1][x][0] = max(f[i][j+1][x][0], f[i][j][x][y]);
                    if(s[i+1]==t[j+1]){
                       f[i+1][j+1][x+1][1] = max(f[i+1][j+1][x+1][1], f[i][j][x][y]+1);
                       if(y==1) f[i+1][j+1][x][1] = max(f[i+1][j+1][x][1], f[i][j][x][y]+1);
                    }
                }
            }
        }
    }
    cout << max(f[n][m][k][0], f[n][m][k][1]);


    return 0;
}


Comments

Submit
0 Comments
More Questions

1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array
1594B - Special Numbers
1614A - Divan and a Store
2085. Count Common Words With One Occurrence
2089. Find Target Indices After Sorting Array
2090. K Radius Subarray Averages
2091. Removing Minimum and Maximum From Array
6. Zigzag Conversion
1612B - Special Permutation
1481. Least Number of Unique Integers after K Removals
1035. Uncrossed Lines
328. Odd Even Linked List
1219. Path with Maximum Gold
1268. Search Suggestions System
841. Keys and Rooms