Educational Codeforces Round 82 (Rated for Div. 2)E. Erase Subsequences
#include
using namespace std;
typedef long long LL;
const int N = 2e5 + 10;
#define fi first
#define se second
#define pb push_back
int t;
char a[N],b[N];
int dp[403][403];
int nx[555][26];
int main() {
ios::sync_with_stdio(false);
for(cin>>t;t;t--){
cin>>a+1>>b+1;
int l=strlen(a+1);
int r=strlen(b+1);
for(int i=0;i<26;i++)nx[l+1][i]=nx[l+2][i]=l+1;
for(int i=l;i>=1;i--){
for(int j=0;j<26;j++)nx[i][j]=nx[i+1][j];
nx[i][a[i]-'a']=i;
}
int ok=0;
for(int i=0;i<r;i++){
memset(dp,-1,sizeof dp);
dp[0][i]=0;
for(int j=0;j<=i;j++){
for(int k=i;k<=r;k++){
if(j==0&&k==i)
continue;
dp[j][k]=l+1;
if(j) dp[j][k]=min(dp[j][k],nx[dp[j-1][k]+1][b[j]-'a']);
if(k>i)dp[j][k]=min(dp[j][k],nx[dp[j][k-1]+1][b[k]-'a']);
}
}
if(dp[i][r]<=l){
ok=1;
//cout<
break;
}
}
if(ok)cout<<"YES
";
else cout<<"NO
";
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: