江户川コナン @ 2021-08-06 22:03:11
代码:
#include <bits/stdc++.h>
using namespace std;
/*const int maxn=1e5+5;
int s[maxn],a[maxn],b[maxn];
int n,T,cnt=0;
void push(int x){
s[++cnt]=x;
}
bool y[maxn];
void read(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
/*cout<<b[i]<<endl;
for(int i=1;i<=cnt;i++){
cout<<s[i]<<" ";
}
cout<<endl;*/
/* bool flag=false;
for(int i=1;i<=cnt;i++){
if(s[i]==a[i]) {
flag=true;
break;
}
}
if(!flag){
int x=b[i];
for(int j=1;j<=n;j++){
if(a[j]==x) break;
if(!y[j]){
push(a[j]);
y[j]=true;
}
}
y[i]=true;
}else{
if(s[cnt]!=b[i]){
cout<<"No"<<endl;
return ;
}else cnt--;
}
}
cout<<"Yes"<<endl;
}
int main(){
cin>>T;
while(T--){
memset(y,0,sizeof(y));
read();
}
return 0;
}*/
const int maxn=1e5+5;
int a[maxn],b[maxn];
int n,T,cnt=1;
stack<int> s;
void read(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
for(int i=1;i<=n;i++){
s.push(a[i]);
while(s.top()==b[cnt]){
s.pop();
cnt++;
if(s.empty()){
break;
}
}
}
if(s.empty()){
cout<<"Yes"<<endl;
}else{
cout<<"No"<<endl;
}
while(!s.empty()) s.pop();
}
int main(){
cin>>T;
while(T--){
read();
}
return 0;
}
恳请各位大佬/神犇指点迷津
by donghanwen1225 @ 2021-08-06 22:20:36
@江户川コナン 您忘了把cnt
清零