#include<bits/stdc++.h>
using namespace std;
const int N=1e5+6;
char sx[N],sy[N],tx[N],ty[N];
int main()
{
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	int t;
	scanf("%d",&t);
	for(int i=1;i<=t;i++)
	{
		int n,x=0,y=0,xx=0,yy=0,ans=0,xo=0,xl=0,yo=0,yl=0,p=0,kx=0,ky=0;
		scanf("%d",&n);
		for(int j=0;j<=n;j++)
		{
			scanf("%c",&sx[j]);
			if(sx[j]=='1') x++; 
		}
		for(int j=0;j<=n;j++)
		{
			scanf("%c",&sy[j]);
			if(sy[j]=='1') y++;
		}
		for(int j=0;j<=n;j++)
		{
			scanf("%c",&tx[j]);
			if(tx[j]=='0') xx++;
		}
		for(int j=0;j<=n;j++)
		{
			scanf("%c",&ty[j]);
			if(ty[j]=='0') yy++;
		}
		/*for(int j=1;j<=n;j++) printf("%c",sx[j]);
		printf("\n");
		for(int j=1;j<=n;j++) printf("%c",sy[j]);
		printf("\n");
		for(int j=1;j<=n;j++) printf("%c",tx[j]);
		printf("\n");
		for(int j=1;j<=n;j++) printf("%c",ty[j]);
		printf("\n");*/
		if(x==0||x==n)//A
		{
			if(x==0) printf("%d\n",n-y);
			else printf("%d\n",y);
			continue;
		}
		int cnt=0;
		for(int j=1;j<=n;j++)
		{
			if(tx[j]==ty[j]) cnt++;
		}
		int cxl=0,cxo=0,cyl=0,cyo=0;
		if(cnt==n)//B
		{
			for(int j=1;j<=n;j++)
			{
				if(tx[j]=='0')
				{
					ans+=cxo+cxl-abs(cxl-cyl);
					cxo=0;
					cxl=0;
					cyo=0;
					cyl=0;
				}
				else
				{
					if(sx[j]=='0') cxo++;
					else cxl++;
					if(sy[j]=='0') cyo++;
					else cyl++;
				}
			}
			ans+=cxo+cxl-abs(cxl-cyl);
			printf("%d\n",ans);
			continue;
		}
		if(xx==1&&yy==1)//C
		{
			for(int j=1;j<=n;j++)
			{
				if(tx[j]=='0')
				{
					xx=j;
					break;
				}
			}
			for(int j=1;j<=n;j++)
			{
				if(ty[j]=='0')
				{
					yy=j;
					break;
				}
			}
			if(xx==yy)
			{
				if(sx[xx]==sy[yy]) ans++;
				for(int j=1;j<=xx-1;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
					if(sy[j]=='0') yo++;
					else yl++;
				}
				ans+=xo+xl-abs(xo-yo);
				xo=0;
				yo=0;
				xl=0;
				yl=0;
				for(int j=xx+1;j<=n;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
					if(sy[j]=='0') yo++;
					else yl++;
				}
				ans+=xo+xl-abs(xo-yo);
				printf("%d\n",ans);
				continue;
			}
			if(xx>yy)
			{
				for(int j=1;j<=yy;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
					if(sy[j]=='0') yo++;
					else yl++;
				}
				for(int j=yy+1;j<xx;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
				}
				if(xl>=yl&&xo>=yo)
				{
					ans+=yl+yo;
					xl-=yl;
					xo-=yo;
				}
				else
				{
					if(xl<yl)
					{
						ans+=xl+yo;
						xl=0;
						xo-=yo+(yl-xl);
					}
					else
					{
						ans+=yl+xo;
						xo=0;
						xl-=yl+(yo-xo);
					}
				}
				for(int j=yy+1;j<=n;j++)
				{
					if(sy[j]=='0') yo++;
					else yl++;
				}
				for(int j=xx;j<=n;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
				}
				ans+=yo+yl-abs(yo-xo);
				printf("%d\n",ans);
				continue;
			}
			if(xx<yy)
			{
				for(int j=1;j<=xx;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
					if(sy[j]=='0') yo++;
					else yl++;
				}
				for(int j=xx+1;j<yy;j++)
				{
					if(sy[j]=='0') yo++;
					else yl++;
				}
				if(yl>=xl&&yo>=xo)
				{
					ans+=xl+xo;
					yl-=xl;
					yo-=xo;
				}
				else
				{
					if(yl<xl)
					{
						ans+=yl+xo;
						yl=0;
						yo-=xo+(xl-yl);
					}
					else
					{
						ans+=xl+yo;
						yo=0;
						yl-=xl+(xo-yo);
					}
				}
				for(int j=xx+1;j<=n;j++)
				{
					if(sx[j]=='0') xo++;
					else xl++;
				}
				for(int j=yy;j<=n;j++)
				{
					if(sy[j]=='0') yo++;
					else yl++;
				}
				ans+=xo+xl-abs(xo-yo);
				printf("%d\n",ans);
				continue;
			}
		}
		for(int j=1;j<=n;j++)//ALL
		{
			if(sx[j]=='1') xl++;
			else xo++;
			if(sy[j]=='1') yl++;
			else yo++;
			kx=j;
			ky=j;
			if(tx[j]=='0')
			{
				p=1;
				ky--;
				break;
			}
			if(ty[j]=='0')
			{
				p=0;
				kx--;
				break;
			}
		}
		while(kx<=n||ky<=n)
		{
			if(p==0)
			{
				kx++;
				if(tx[kx]=='0'&&kx>=ky)
				{
					if(xl>=yl&&xo>=yo)
					{
						ans+=yl+yo;
						xl-=yl;
						xo-=yo;
					}
					else
					{
						if(xl<yl)
						{
							ans+=xl+yo;
							xl=0;
							xo-=yo+(yl-xl);
						}
						else
						{
							ans+=yl+xo;
							xo=0;
							xl-=yl+(yo-xo);
						}
					}
					p=1;
				}
				if(sx[kx]=='1') xl++;
				else xo++;
			}
			else
			{
				ky++;
				if(ty[ky]=='0'&&ky>=kx)
				{
					if(yl>=xl&&yo>=xo)
					{
						ans+=xl+xo;
						yl-=xl;
						yo-=xo;
					}
					else
					{
						if(yl<xl)
						{
							ans+=yl+xo;
							yl=0;
							yo-=xo+(xl-yl);
						}
						else
						{
							ans+=xl+yo;
							yo=0;
							yl-=xl+(xo-yo);
						}
					}
					p=0;
				}
				if(sy[ky]=='1') yl++;
				else yo++;
			}
		}
		if(ky==n)
		{
			for(int j=kx;j<=n;j++)
			{
				if(sx[j]=='0') xo++;
				else yo++;
			}
			ans+=yo+yl-abs(yo-xo);
		}
		else
		{
			
			for(int j=ky;j<=n;j++)
			{
				if(sy[j]=='0') yo++;
				else yl++;
			}
			ans+=xo+xl-abs(xo-yo);
		}
		printf("%d\n",ans);
	}
	return 0;
}
