题目
#include <bits/stdc++.h>
using namespace std;
int n,t,lzx[1005],lzy[1005],dx[4]={0,-1,0,1},dy[4]={1,0,-1,0};
bool mad[1005][1005],win;
void dfs(unsigned int seconds,int x,int y)
{
if (x==n&&y==n)
{
cout<<"Yes"<<endl;
win=1;
return;
}
for (int i=0;i<=3;i++)
{
if (!mad[x+dx[i]][y+dy[i]])
{
mad[lzx[seconds]][lzy[seconds]]=1;
dfs(seconds+1,x+dx[i],y+dy[i]);
mad[lzx[seconds]][lzy[seconds]]=0;
}
}
}
int main()
{
cin>>t;
while (t--)
{
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>lzx[i]>>lzy[i];
}
win=0;
dfs(1,1,1);
if (!win) cout<<"No"<<endl;
}
return 0;
}