#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool rcmp(int a, int b) { return a>b; } typedef long long LL; class mypcmp { public: bool operator()(const int& a, const int& b) { return a=0) r=dfs(nm, i+1); } else if (ib[i]=='1') { nm = nx[m][1]; if (nm>=0) r=dfs(nm, i+1); } else { nm = nx[m][0]; if (nm>=0) r=dfs(nm, i+1); if (r==0) { nm = nx[m][1]; if (nm>=0) r=dfs(nm, i+1); } } dp[m][i]=r; return r; } int main() { int n, i, j; for (i=0; i<4; i++) for (j=0; j<4; j++) xk[i][j]=1; for (i=0; i<4; i++) nx[i][0]=nx[i][1]=-1; xk[0][0]=0; xk[0][1]=0; xk[1][3]=0; xk[2][0]=0; xk[3][2]=0; xk[3][3]=0; nx[0][1]=1; nx[1][0]=2; nx[1][1]=3; nx[2][0]=0; nx[2][1]=1; nx[3][0]=2; int tc; scanf("%d", &tc); while(tc) { tc--; scanf("%d %s", &n, ib); gn=n; if (ib[0]=='?'&&ib[1]=='?') { for (i=0; i