#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int n,q,ans;
string a,b,s,t;
int cnta_0,cnta_1,cntb_0,cntb_1;
int sa,ta,sb,tb,len;
bool visa[100010],visb[100010];
void init(){
	cnta_0=0;cnta_1=0;
	cntb_0=0;cntb_1=0;
	ans=0;
	for (int i=0;i<n;++i){
		visa[i]=false;
		visb[i]=false;
	}
	scanf("%d",&n);
	cin>>a;
	cin>>b;
	cin>>s;
	cin>>t;
	sa=0,ta=0,sb=0,tb=0;len=0;
	while (ta<n&&tb<n){
		while (ta<n&&s[ta]=='1'){
			if (visa[ta]==true){
				++ta;
				continue;
			}
			visa[ta]=true;
			if (a[ta]=='0') ++cnta_0;
			else ++cnta_1;
			++ta;
		}
		if (ta>=n) break;
		if (s[ta]=='0'&&ta>0) --ta;
		while (tb<n&&t[tb]=='1'){
			if (visb[tb]==true){
				++tb;
				continue;
			}
			visb[tb]=true;
			if (b[tb]=='0') ++cntb_0;
			else ++cntb_1;
			++tb;
		}
		if (tb>=n) break;
		if (t[tb]=='0'&&tb>0) --tb;
	//	printf("ta=%d tb=%d\n",ta,tb);
		if (ta<tb){
			len=ta-sb+1;
	//		printf("len=%d cnta_0=%d cnta_1=%d cntb_0=%d cntb_1=%d\n",len,cnta_0,cnta_1,cntb_0,cntb_1);
			if (len>=0) ans+=min(len,min(cnta_0,cntb_0)+min(cnta_1,cntb_1));
			if (len>=min(cnta_0,cntb_0)){
				cntb_0-=min(cnta_0,cntb_0);
				len-=min(cnta_0,cntb_0);
				if (len>=min(cnta_1,cntb_1)){
					cntb_1-=min(cnta_1,cntb_1);
				}
				else cntb_1-=max(len,0);
			}
			else{
				cntb_0-=max(len,0);
			}
			cnta_0=0;
			cnta_1=0;
			if (s[ta]=='1') ++ta;
	//		printf("cntb0=%d cbtb1=%d\n",cntb_0,cntb_1);
			while (ta<=tb&&s[ta]=='0'){
				if (visa[ta]==true){
					++ta;
					continue;
				}
				visa[ta]=true;
	//			printf("a->");
				if (a[ta]=='0'){
					if (cntb_0>0){
						--cntb_0;
						++ans;
	//					printf("wow\n"); 
					}
				}
				else{
					if (cntb_1>0){
						--cntb_1;
						++ans;
	//					printf("wow\n");
					}
				}
				++ta;
			}
			if (s[ta]=='1'){
				sa=ta;
				continue;
			}
			++tb;
			while (ta<n&&s[ta]=='0'&&t[tb]=='0'){
				cnta_0=0;cnta_1=0;cntb_0=0;cntb_1=0;
				if (a[ta]==b[tb]) ++ans;
				++ta;++tb;
			}
			sa=ta;
			sb=tb;
			if (ta>=n) break;
		}
		else if (ta>tb){
			len=tb-sa+1;
	//		printf("len=%d cnta_0=%d cnta_1=%d cntb_0=%d cntb_1=%d\n",len,cnta_0,cnta_1,cntb_0,cntb_1);
			if (len>=0) ans+=min(len,min(cnta_0,cntb_0)+min(cnta_1,cntb_1));
			if (len>=min(cnta_0,cntb_0)){
				cnta_0-=min(cnta_0,cntb_0);
				len-=min(cnta_0,cntb_0);
				if (len>=min(cnta_1,cntb_1)){
					cnta_1-=min(cnta_1,cntb_1);
				}
				else cnta_1-=max(len,0);
			}
			else{
				cnta_0-=max(len,0);
			}
		//	printf("cnta_0=%d cnta_1=%d\n",cnta_0,cnta_1);
			cntb_0=0;
			cntb_1=0;
			if (t[tb]=='1') ++tb;
			while (tb<=ta&&t[tb]=='0'){
				if (visb[tb]==true){
					++tb;
					continue;
				}
		//		printf("b->");
				visb[tb]=true;
				if (b[tb]=='0'){
					if (cnta_0>0){
						--cnta_0;
						++ans;
		//				printf("wow\n");
					}
				}
				else{
					if (cnta_1>0){
						--cnta_1;
						++ans;
		//				printf("wow\n");
					}
				}
				++tb;
			}
		//	printf("cnta_0=%d cnta_1=%d\n",cnta_0,cnta_1);
			if (t[tb]=='1'){
				sb=tb;
				continue;
			}
			++ta;
			while (ta<n&&s[ta]=='0'&&t[tb]=='0'){
				cnta_0=0;cnta_1=0;cntb_0=0;cntb_1=0;
				if (a[ta]==b[tb]){
					++ans;
		//			printf("wow"); 
				}
				++ta;++tb;
			}
			sa=ta;
			sb=tb;
			if (ta>=n) break;
		}
		else{
			len=ta-max(sa,sb)+1;
	//		printf("len=%d cnta_0=%d cnta_1=%d cntb_0=%d cntb_1=%d\n",len,cnta_0,cnta_1,cntb_0,cntb_1);
			
			ans+=min(len,min(cnta_0,cntb_0)+min(cnta_1,cntb_1));
			cnta_0=0;cnta_1=0;
			cntb_0=0;cntb_1=0;
			if (s[ta]=='1')++ta;
			if (t[tb]=='1')++tb;
			while (s[ta]=='0'&&t[tb]=='0'){
				if (a[ta]==b[tb]){
					++ans;
	//				printf("wow\n");
				}
				++ta;++tb;
			}
			sa=ta;
			sb=tb;
			if (ta>=n) break; 
		}
	}
//	printf("sa=%d ta=%d sb=%d tb=%d\n",sa,ta,sb,tb);
//	printf("cnta_0=%d cnta_1=%d cntb_0=%d cntb_1=%d\n",cnta_0,cnta_1,cntb_0,cntb_1);
	while (ta<n){
		if (visa[ta]==true){
			++ta;
			continue;
		}
		visa[ta]=true;
		if (a[ta]=='0') ++cnta_0;
		else ++cnta_1;
		++ta; 
	}
	while (tb<n){
		if (visb[tb]==true){
			++tb;
			continue;
		}
		visb[tb]=true;
		if (b[tb]=='0') ++cntb_0;
		else ++cntb_1;
		++tb;
	}
	len=n-max(sa,sb);
	ans+=min(len,min(cnta_0,cntb_0)+min(cnta_1,cntb_1));
//	printf("len=%d cnta_0=%d cnta_1=%d cntb_0=%d cntb_1=%d\n",len,cnta_0,cnta_1,cntb_0,cntb_1);
	printf("%d\n",ans);
}
int main(){
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	scanf("%d",&q);
	while (q--){
		init();
	}
	return 0;
}
