#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int n,t,lasta,lastb,posa,posb,ans;
int a[N],b[N],c[N],d[N],suma0[N],sumb0[N],suma1[N],sumb1[N],prea[N],preb[N],nxta[N],nxtb[N];
string s;
void init()
{
	for(int i=1;i<=n;i++)
	{
		prea[i]=prea[i-1];
		preb[i]=preb[i-1];
		if(c[i]==0)
		{
			prea[i]=i;
		}
		if(d[i]==0)
		{
			preb[i]=i;
		}
		suma0[i]=suma0[i-1];
		sumb0[i]=sumb0[i-1];
		if(a[i]==0)
		{
			suma0[i]+=1;
		}
		if(b[i]==0)
		{
			sumb0[i]+=1;
		}
		suma1[i]=suma1[i-1]+a[i];
		sumb1[i]=sumb1[i-1]+b[i];
	}
	nxta[n+1]=n+1;
	nxtb[n+1]=n+1;
	for(int i=n;i>=1;i--)
	{
		nxta[i]=nxta[i+1];
		nxtb[i]=nxtb[i+1];
		if(c[i]==0)
		{
			nxta[i]=i;
		}
		if(d[i]==0)
		{
			nxtb[i]=i;
		}
	}
//	for(int i=1;i<=n;i++)
//	{
//		cout<<suma0[i]<<" ";
//	}
//	cout<<endl;
//	for(int i=1;i<=n;i++)
//	{
//		cout<<sumb0[i]<<" ";
//	}
//	cout<<endl;
}
int main()
{
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	scanf("%d",&t);
	while(t--)
	{
		ans=0;
		bool flag1=0,flag2=0,flag=0;
		scanf("%d",&n);
		cin>>s;
		for(int i=0;i<n;i++)
		{
			a[i+1]=s[i]-'0';
			if(s[i]-'0'==1)
			{
				flag1=1;
			}
			else
			{
				flag2=1;
			}
		}
		cin>>s;
		for(int i=0;i<n;i++)
		{
			b[i+1]=s[i]-'0';
		}
		cin>>s;
		for(int i=0;i<n;i++)
		{
			c[i+1]=s[i]-'0';
		}
		cin>>s;
		for(int i=0;i<n;i++)
		{
			d[i+1]=s[i]-'0';
		}
		init();
//		if((flag1==1&&flag2==0)||(flag1==0&&flag2==1))
//		{
//			for(int i=1;i<=n;i++)
//			{
//				if(a[i]==b[i])
//				{
//					ans++;
//				}
//			}
//			printf("%d\n",ans);
//			continue;
//		}
//		for(int i=1;i<=n;i++)
//		{
//			if(c[i]!=d[i])
//			{
//				flag=1;
//			}
//		}
//		if(flag==0)
//		{
//			for(int i=1;i<=n;i++)
//			{
//				if(c[i]==0)
//				{
//					if(a[i]==b[i])
//					{
//						ans++;
//					}
//					int l,r,tota1,tota0,totb1,totb0;
//					l=prea[i-1]+1;
//					r=i-1;
//				//	cout<<l<<" "<<r<<endl;
//					tota1=suma1[r]-suma1[l-1];
//					totb1=sumb1[r]-sumb1[l-1];
//					tota0=suma0[r]-suma0[l-1];
//					totb0=sumb0[r]-sumb0[l-1];
//					if(tota1<totb1&&tota0>totb0)
//					{
//						ans+=tota1+totb0;
//					}
//					else if(tota0<totb0&&tota1>totb1)
//					{
//						ans+=tota0+totb1;
//					}
//					else if(tota1==totb1)
//					{
//						ans+=tota1+tota0;
//					}
//				}
//			}
//			int l,r,tota1,tota0,totb1,totb0;
//			l=prea[n]+1;
//			r=n;
//			tota1=suma1[r]-suma1[l-1];
//			totb1=sumb1[r]-sumb1[l-1];
//			tota0=suma0[r]-suma0[l-1];
//			totb0=sumb0[r]-sumb0[l-1];
//			if(tota1<totb1&&tota0>totb0)
//			{
//				ans+=tota1+totb0;
//			}
//			else if(tota0<totb0&&tota1>totb1)
//			{
//				ans+=tota0+totb1;
//			}
//			else if(tota1==totb1)
//			{
//				ans+=tota1+tota0;
//			}
//			printf("%d\n",ans);
//			continue;
//		}
		int Sa1,Sa0,Sb0,Sb1;
		Sa1=0;
		Sb1=0;
		Sa0=0;
		Sb0=0;
		for(int i=1;i<=n;i++)
		{
			if(c[i]==0&&d[i]==0)
			{
				int tota1,tota0,totb1,totb0;
				tota1=suma1[i-1]-Sa1;
				tota0=suma0[i-1]-Sa0;
				totb1=sumb1[i-1]-Sb1;
				totb0=sumb0[i-1]-Sb0;
				if(tota1+tota0<totb1+totb0)
				{
					if(totb1>=tota1&&totb0>=tota0)
					{
						Sa1+=tota1;
						Sb1+=tota1;
						Sa0+=tota0;
						Sb0+=tota0;
						ans+=tota1+tota0;
					}
					if(totb1<tota1&&totb0>=tota0)
					{
						Sa1+=tota1;
						Sa0+=tota0;
						Sb1+=totb1;
						Sb0+=tota0+tota1-totb1;
						ans+=totb1+tota0;
					}
					if(totb1>=tota1&&totb0<tota0)
					{
						Sa1+=tota1;
						Sa0+=tota0;
						Sb1+=tota1+tota0-totb0;
						Sb0+=totb0;
						ans+=tota1+totb0;
					}
				}
				else
				{
					if(tota1>=totb1&&tota0>=totb0)
					{
						Sa1+=totb1;
						Sa0+=totb0;
						Sb1+=totb1;
						Sb0+=totb0;
						ans+=totb1+totb0;
					}
					if(tota1<totb1&&tota0>=totb0)
					{
						ans+=totb0+tota1;
						Sa1+=tota1;
						Sb1+=totb1;
						Sa0+=totb0+(totb1-tota1);
						Sb0+=totb0;
					}
					if(tota1>=totb1&&tota0<totb0)
					{
						ans+=totb1+tota0;
						Sa1+=totb1+(totb0-tota0);
						Sb1+=totb1;
						Sa0+=tota0;
						Sb0+=totb0;
					}
				}
				if(a[i]==b[i])
				{
					ans++;
				}
				if(a[i]==1)
				{
					Sa1++;
				}
				if(a[i]==0)
				{
					Sa0++;
				}
				if(b[i]==1)
				{
					Sb1++;
				}
				if(b[i]==0)
				{
					Sb0++;
				}
			}
			else if(c[i]==0)
			{
				int tota1,tota0,totb1,totb0;
				tota1=suma1[i]-Sa1;
				tota0=suma0[i]-Sa0;
				totb1=sumb1[nxtb[i]-1]-Sb1;
				totb0=sumb0[nxtb[i]-1]-Sb0;
				if(totb1>=tota1&&totb0>=tota0)
				{
					Sa1+=tota1;
					Sb1+=tota1;
					Sa0+=tota0;
					Sb0+=tota0;
					ans+=tota1+tota0;
				}
				if(totb1<tota1&&totb0>=tota0)
				{
					Sa1+=tota1;
					Sa0+=tota0;
					Sb1+=totb1;
					Sb0+=tota0+tota1-totb1;
					ans+=totb1+tota0;
				}
				if(totb1>=tota1&&totb0<tota0)
				{
					Sa1+=tota1;
					Sa0+=tota0;
					Sb1+=tota1+tota0-totb0;
					Sb0+=totb0;
					ans+=tota1+totb0;
				}
			}
			else if(d[i]==0)
			{
				
				int tota1,tota0,totb1,totb0;
				tota1=suma1[nxta[i]-1]-Sa1;
				totb1=sumb1[i]-Sb1;
				tota0=suma0[nxta[i]-1]-Sa0;
				totb0=sumb0[i]-Sb0;
				if(tota1>=totb1&&tota0>=totb0)
				{
					Sa1+=totb1;
					Sa0+=totb0;
					Sb1+=totb1;
					Sb0+=totb0;
					ans+=totb1+totb0;
				}
				if(tota1<totb1&&tota0>=totb0)
				{
					ans+=totb0+tota1;
					Sa1+=tota1;
					Sb1+=totb1;
					Sa0+=totb0+(totb1-tota1);
					Sb0+=totb0;
				}
				if(tota1>=totb1&&tota0<totb0)
				{
					ans+=totb1+tota0;
					Sa1+=totb1+(totb0-tota0);
					Sb1+=totb1;
					Sa0+=tota0;
					Sb0+=totb0;
				}
			}
		}
		int tota1,tota0,totb1,totb0;
		tota1=suma1[n]-Sa1;
		totb1=sumb1[n]-Sb1;
		tota0=suma0[n]-Sa0;
		totb0=sumb0[n]-Sb0;
		ans+=min(tota1,totb1)+min(tota0,totb0); 
		printf("%d\n",ans);
	}
	return 0;
}
/*
1
6
111111
101010
111111
111111
*/
/*
1
6
111100
011001
101101
101101
*/
/*
1
6
011101
111010
111010
101101

*/
