#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define fi first
#define se second

const int N=100010;
int T,n;
char s1[N],s2[N],t1[N],t2[N];
int ans;
struct node
{
	int l,r;
	pii u;
	int rd;
	int ay;
}a[N],b[N];
int c1,c2;
signed main()
{
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>T;
	while(T--)
	{
		cin>>n>>s1+1>>s2+1>>t1+1>>t2+1;
		c1=c2=0;
		ans=0;
		pii o={0,0};
		int l=1;
		for(int i=1;i<=n;i++)
		{
			if(s1[i]=='0')++o.fi;
			else ++o.se;
			if(t1[i]=='0')
				a[++c1]={l,i,o,s1[i]-'0'},l=i+1,o={0,0};
		}
		a[++c1]={l,n+1,o,-1};
		l=1;o={0,0};
		for(int i=1;i<=n;i++)
		{
			if(s2[i]=='0')++o.fi;
			else ++o.se;
			if(t2[i]=='0')
				b[++c2]={l,i,o,s2[i]-'0'},l=i+1,o={0,0};
		}
		b[++c2]={l,n+1,o,-1};
		int p=1,q=1;
		while(p<=c1||q<=c2)
		{
			node &x=a[p],&y=b[q];
//			cout<<p<<' '<<q<<":\n";
//			cout<<x.l<<' '<<x.r<<' '<<x.u.fi<<' '<<x.u.se<<endl;
//			cout<<y.l<<' '<<y.r<<' '<<y.u.fi<<' '<<y.u.se<<endl;
			
			if(x.r==y.r)
			{
				if(x.rd==0)
					--x.u.fi;
				else if(x.rd==1)
					--x.u.se;
				if(y.rd==0)
					--y.u.fi;
				else if(y.rd==1)
					--y.u.se;
				int g1=min(x.u.fi,y.u.fi),g2=min(x.u.se,y.u.se);
				ans+=g1+g2;
				++p;++q;
			}
			else if(x.r>y.r)
			{
				if(x.rd==0)
					--x.u.fi;
				else if(x.rd==1)
					--x.u.se;
				int g1=min(x.u.fi,y.u.fi),g2=min(x.u.se,y.u.se);
				int k=max(0,y.u.fi-x.u.fi)+max(0,y.u.se-x.u.se);		
				ans+=g1+g2;
				x.ay+=max(0,g1+g2+min(x.ay,k)-(y.r-y.l+1));
				x.u.fi-=g1;
				x.u.se-=g2;
				x.l=y.r+1;
				++q;
				if(x.rd==0)
					++x.u.fi;
				else if(x.rd==1)
					++x.u.se;
			}
			else
			{
				if(y.rd==0)
					--y.u.fi;
				else if(y.rd==1)
					--y.u.se;
				int g1=min(x.u.fi,y.u.fi),g2=min(x.u.se,y.u.se);
				int k=max(0,y.u.fi-x.u.fi)+max(0,y.u.se-x.u.se);
				ans+=g1+g2;
				y.ay+=max(0,g1+g2+min(y.ay,k)-(x.r-x.l+1));
				y.u.fi-=g1;
				y.u.se-=g2;
				y.l=x.r+1;
				++p;
				if(y.rd==0)
					++y.u.fi;
				else if(y.rd==1)
					++y.u.se;
			}
//			cout<<ans<<endl;
		}
		cout<<ans<<endl;
	}
	return 0;
}
