101762024-03-29 00:18:07111Regexcpp17Időlimit túllépés 0/1001.603s76284 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int T=-1;
	cin>>T;
	while(T--){
		string A,B;
		cin>>A>>B;
		int N=A.size(),M=B.size();
		// N=100,M=100;
		// for(int i=0;i<N;i++)A+='a'+rand()%3;
		// for(int i=0;i<M;i++)B+='a'+rand()%3;
		int dp[N+1][M+1],l[N+1][M+1];
		for(int i=0;i<=N;i++){
			dp[i][0]=i;
			l[i][0]=i+3;
		}
		for(int i=0;i<=M;i++){
			dp[0][i]=i;
			l[0][i]=i+3;
		}
		for(int i=1;i<=N;i++){
			for(int j=1;j<=M;j++){
				l[i][j]=dp[i][j]=min(l[i-1][j]+1,l[i][j-1]+1);
				int k=0;
				while(k<i&&k<j&&A[i-k-1]==B[j-k-1]){
					k++;
					dp[i][j]=min(dp[i][j],dp[i-k][j-k]+k);
				}
				l[i][j]=min(l[i][j],dp[i][j]+3);
				// cout<<setw(4)<<i<<' '<<j<<' '<<dp[i][j]<<' '<<l[i][j]<<'\n';
				int x=1e9;
				for(int ii=0;ii<i;ii++){
					for(int jj=0;jj<j;jj++){
						x=min(x,l[ii][jj]+i+j-ii-jj);
					}
				}
				l[i][j]=min(l[i][j],x);
			}
		}
		cout<<dp[N][M]<<'\n';
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2104 KiB
2Elfogadva14ms2500 KiB
subtask20/9
3Időlimit túllépés1.603s49780 KiB
4Időlimit túllépés1.564s41956 KiB
5Időlimit túllépés1.539s70120 KiB
6Időlimit túllépés1.569s46864 KiB
7Időlimit túllépés1.56s69700 KiB
8Időlimit túllépés1.555s53192 KiB
subtask30/11
9Elfogadva3ms3276 KiB
10Elfogadva3ms3496 KiB
11Elfogadva3ms3708 KiB
12Elfogadva3ms3776 KiB
13Hibás válasz3ms3912 KiB
14Hibás válasz3ms3924 KiB
subtask40/13
15Elfogadva14ms4268 KiB
16Elfogadva52ms4480 KiB
17Hibás válasz54ms4764 KiB
18Elfogadva34ms4628 KiB
19Elfogadva20ms4608 KiB
20Elfogadva37ms4656 KiB
subtask50/24
21Elfogadva800ms6172 KiB
22Időlimit túllépés1.575s5068 KiB
23Időlimit túllépés1.56s4868 KiB
24Időlimit túllépés1.58s4896 KiB
25Hibás válasz989ms5828 KiB
26Időlimit túllépés1.562s5020 KiB
subtask60/43
27Időlimit túllépés1.583s58032 KiB
28Időlimit túllépés1.564s48808 KiB
29Időlimit túllépés1.572s61644 KiB
30Időlimit túllépés1.56s76284 KiB
31Időlimit túllépés1.575s37832 KiB
32Időlimit túllépés1.6s20512 KiB
33Időlimit túllépés1.58s69700 KiB
34Időlimit túllépés1.569s68384 KiB