#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+7;

string s1,s2,t1,t2;

int maxx=0;
int n;

int main(){
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	
	int t;
	cin>>t;
	while(t--){
		
		//   flag1ÅÐ¶Ïs1ÊÇ·ñÊÇ 0
		//   flag1ÅÐ¶Ïs2ÊÇ·ñÊÇ 0
		
		bool A=true,B=true,C=true;
		
		scanf("%d",&n);
		cin>>s1>>s2>>t1>>t2;
		
		
		int ans=0;
		
		for(int i=0;i<n-1;i++){
			
			if(s1[i]!=s1[i+1]){
				A=false;
				break;
			}
			
		}
		
		for(int i=0;i<n;i++){
			if(t1[i]!=t2[i]){
				B=false;
				break;
			}	
		}
		
		int cnt0=0,cnt1=0;
		
		for(int i=0;i<n;i++){
			if(t1[i]=='0'){
				cnt0++;
			}if(t2[i]=='0'){
				cnt1++;
			}
			if(cnt0>1||cnt1>1){
				C=false;
				break;
			}
		}
		
//		cout<<A<<" "<<B<<" "<<C<<endl;
		
		if(A){
			
			for(int i=0;i<n;i++){
				if(s2[i]==s1[i])ans++;
			}
			
		}else if(B){
			
			int num01=0,num11=0,num02=0,num12=0;
			
			for(int i=0;i<n;i++){
				if(t1[i]=='0'){
					if(s1[i]==s2[i])ans++;
					num01=num02=num11=num12=0;
				}
				if(s1[i]=='0'){
					num01++;
				}else{
					num11++;
				}
				if(s2[i]=='0'){
					num02++;
				}else{
					num12++;
				}
				ans+=min(num01,num02)+min(num11,num12);
			}
			
		}
		
		printf("%d\n",ans);
	}
	
    return 0;
}
/*
1 
6
011101 111010
111010 101101

*/
