#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int T,n;
char s_1[N],s_2[N],t_1[N],t_2[N];
void doit1(){
	int ans=0;
	for(int i=1;i<=n;i++){
		if(s_1[i]==s_2[i]) ans++;
	}
	printf("%d\n",ans);
} 
void doit2(){
	int ans=0,num11=0,num10=0,num21=0,num20=0;
	for(int i=1;i<=n;i++){
		if(t_1[i]=='0'){
			ans+=min(num11,num21);
			ans+=min(num10,num20);
			num11=num21=num10=num20=0;
			if(s_1[i]==s_2[i]) ans++;
		}
		else{
			if(s_1[i]=='1') num11++;
			else num10++;
			if(s_2[i]=='1') num21++;
			else num20++;
		}
	}
	ans+=min(num11,num21);
	ans+=min(num10,num20);
	printf("%d\n",ans);
}
void doit3(){
	int ans=0,num1l1=0,num1l0=0,num2l1=0,num2l0=0,num1r1=0,num1r0=0,num2r1=0,num2r0=0,id1=0,id2=0;
	for(int i=1;i<=n;i++){
		if(t_1[i]=='0') id1=i;
		else if(id1==0){
			if(s_1[i]=='1') num1l1++;
			else num1l0++;
		}
		else{
			if(s_1[i]=='1') num1r1++;
			else num1r0++;
		}
		if(t_2[i]=='0') id2=i;
		else if(id2==0){
			if(s_2[i]=='1') num2l1++;
			else num2l0++;
		}
		else{
			if(s_2[i]=='1') num2r1++;
			else num2r0++;
		}
	}
	if(id1==id2){
		if(s_1[id1]==s_2[id2]) ans++;
		ans+=min(num1l1,num2l1);
		ans+=min(num1l0,num2l0);
		ans+=min(num1r1,num2r1);
		ans+=min(num1r0,num2r0);
	}
	else if(id1>id2){
		if(s_2[id2]=='1') num2l1++;
		else num2l0++;
		if(num2l1>num1l1){
			ans+=num1l1+num2l0;
			num1l0-=(num2l1-num1l1+num2l0);
			num1l1=0;
		}
		else if(num2l0>num1l0){
			ans+=num1l0+num2l1;
			num1l1-=(num2l0-num1l0+num2l1);
			num1l0=0;
		}
		else{
			ans+=num2l0+num2l1;
			num1l0-=num2l0;
			num1l1-=num2l1;
		}
		if(s_1[id1]=='1') num1r1++;
		else num1r0++;
		if(num1r1>num2r1){
			ans+=num2r1+num1r0;
			num2r0-=(num1r1-num2r1+num1r0);
			num2r1=0;
		}
		else if(num1r0>num2r0){
			ans+=num2r0+num1r1;
			num2r1-=(num1r0-num2r0+num1r1);
			num2r0=0;
		}
		else{
			ans+=num1r0+num1r1;
			num2r0-=num1r0;
			num2r1-=num1r1;
		}
		ans+=min(num1l1,num2r1);
		ans+=min(num1l0,num2r0);
		printf("%d\n",ans);
	}
	else{
		if(s_1[id1]=='1') num1l1++;
		else num1l0++;
		if(num1l1>num2l1){
			ans+=num2l1+num1l0;
			num2l0-=(num1l1-num2l1+num1l0);
			num2l1=0;
		}
		else if(num1l0>num2l0){
			ans+=num2l0+num1l1;
			num2l1-=(num1l0-num2l0+num1l1);
			num2l0=0;
		}
		else{
			ans+=num1l0+num1l1;
			num2l0-=num1l0;
			num2l1-=num1l1;
		}
		if(s_2[id2]=='1') num2r1++;
		else num2r0++;
		if(num2r1>num1r1){
			ans+=num1r1+num2r0;
			num1r0-=(num2r1-num1r1+num2r0);
			num1r1=0;
		}
		else if(num2r0>num1r0){
			ans+=num1r0+num2r1;
			num1r1-=(num2r0-num1r0+num2r1);
			num1r0=0;
		}
		else{
			ans+=num2r0+num2r1;
			num1r0-=num2r0;
			num1r1-=num2r1;
		}
		ans+=min(num2l1,num1r1);
		ans+=min(num2l0,num1r0);
		printf("%d\n",ans);
	}
}
int main(){
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	scanf("%d",&T);
	while(T--){
		scanf("%d%s%s%s%s",&n,s_1+1,s_2+1,t_1+1,t_2+1);
		bool bl=1;
		for(int i=2;i<=n;i++){
			if(s_1[i]!=s_1[i-1]){
				bl=0;
				break;
			}
		}
		if(bl) doit1();
		else{
			bool bl1=1;
			for(int i=1;i<=n;i++){
				if(t_1[i]!=t_2[i]){
					bl1=0;
					break;
				}
			}
			if(bl1){
				doit2();
				continue;
			}
			doit3();
		}
	}
}
