D-删除子序列
其实就是普通的模拟,以为会超时所以没有写orz
步骤:从后往前一个个消去队尾的字母,直到消不下去就break了;
#includeusing namespace std; int main() { int T;cin>>T; while(T--){long long ans=0; int n,m;cin>>n>>m; string s,t;cin>>s;cin>>t; vector v[30]; for(int i=0;i =0;i--){ while(v[t[i]-'a'].size()&&v[t[i]-'a'].back()>las) v[t[i]-'a'].pop_back(); if(v[t[i]-'a'].empty()){flag=1;break;} las=v[t[i]-'a'].back(); v[t[i]-'a'].pop_back(); } if(flag==1)break; ans++; }cout<



