Mam takie zadanie:
Mam takie zadanie Wypracowanie
Obliczam LCS i nie wiem w jaki sposób teraz obliczyć ilość zmian jakie trzeba zrobić, czy mógłby mi ktoś pomóc :)
Mój kod:
#include <bits/stdc++.h>
using namespace std;
int calculate_lcs(string & good, string & bad){
vector<vector<int>> dp (good.length() + 1, vector<int>(bad.length() + 1));
for (int i = 0; i <= good.length(); i++)
dp[i][0] = 0;
for (int j = 0; j <= bad.length(); j++)
dp[0][j] = 0;
for (int i = 0; i < good.length(); i++){
for (int j = 0; j < bad.length(); j++){
if (good[i] == bad[j])
dp[i+1][j+1] = dp[i][j] + 1;
else
dp[i+1][j+1] = max(dp[i+1][j], dp[i][j+1]);
}
}
return 2137; //co ja mam tutaj zwrócić żeby obliczyć ile trzeba zrobić zmian ?
}
int main(){
ios::sync_with_stdio(0);
cin.tie(NULL);
string good, bad;
int n;
cin >> good;
cin >> n;
for (int i = 0; i < n; i++){
cin >> bad;
cout << calculate_lcs(good, bad) << "\n";
}
return 0;
}