#include<bits/stdc++.h>
#define lc (p<<1)
#define rc (p<<1|1)
#define ll long long
#define ull unsigned long long
#define Tp template<typename T>
#define Ts template<typename T,typename... _T>
char buf[1<<20],*p1=buf,*p2=buf;
#define getchar() (p1==p2&&(p2=buf+fread(p1=buf,1,1<<20,stdin),p1==p2)?EOF:*p1++)
Tp inline void read(T& x){
x=0;char c=getchar();bool f=0;
for(;c<48||c>57;c=getchar())c=='-'&&(f=1);
for(;c>47&&c<58;c=getchar())x=(x<<1)+(x<<3)+(c^48);
f&&(x=-x);
}
Ts inline void read(T& x,_T&... y){read(x),read(y...);}
using namespace std;
const int N=3e6+5;
int a[N];
int main(){
int T;read(T);
while(T--){
int n;read(n);
for(int i=1;i<=n;i++)read(a[i]);
if(!(n&1)){
for(int i=1;i<n;i++){
if(a[i]==0||a[i+1]==0){
if(a[i]==1||a[i+1]==1)a[i]=2;
else a[i]=1;
}
else a[i]=0;
}
n--;
}
if(a[(n+1)>>1]>=2&&(n==1||(a[1]==0&&a[n]>0)||(a[1]>0&&a[n]==0)))puts("Yes");
else puts("No");
}
return 0;
}
照着打的,但错了