题解
用一个辅助栈模拟入出栈的过程即可。想找规律用数学方法做来着,但是没必要(才不是因为我不会呢!)。
AC代码
#include<bits/stdc++.h>
using namespace std;
int a[100010]={0};
int main(){
int n,m,x;
cin>>n;
for(int i=0;i<n;i++){
cin>>m;
vector<int> a,b;
stack<int> q;
for(int j=0;j<m;j++){
cin>>x;
a.push_back(x);
}
for(int j=0;j<m;j++){
cin>>x;
b.push_back(x);
}
int k=0;
for(int j=0;j<m;j++){
q.push(a[j]);
while(!q.empty() && q.top()==b[k]){
q.pop();
k++;
}
}
if(q.empty()) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}