RT
#include<bits/stdc++.h>
using namespace std;
int n;
struct wz{
int x,y,t;
};
int gx[10]={1,0,-1,0};
int gy[10]={0,1,0,-1};
bool f[30005][30005];
int flagx[30005],flagy[30005];
string bfs(){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
f[i][j]=false;
}
}
queue<wz> q;
wz a;
a.x=1;
a.y=1;
a.t=0;
q.push(a);
f[1][1]=true;
while(!q.empty()){
a=q.front();
q.pop();
if(a.x==n&&a.y==n) return "Yes";
if(a.t!=0) f[flagx[a.t-1]][flagy[a.t-1]]=true;
for(int i=0;i<4;i++){
wz xin;
xin.x=a.x+gx[i];
xin.y=a.y+gy[i];
xin.t=a.t+1;
if(!f[xin.x][xin.y]) q.push(xin),f[xin.x][xin.y]=true;
}
}
return "No";
}
int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for(int i=1;i<=2*n-2;i++){
cin>>flagx[i]>>flagy[i];
}
cout<<bfs()<<endl;
}
return 0;
}
蟹蟹