#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int T,n,a1[N][2],a2[N][2],num1[N][2],num2[N][2],len1,len2;
string s1,s2,t1,t2;
void yu() {
len1=len2=0;
int t=0,tmp1=0,tmp2=0;
t1+="0",t2+="0";
for(int i=0; i<=n; i++) {
if(t1[i]=='1') {
t++;
if(s1[i]=='1')tmp2++;
else tmp1++;
} else {
if(t>1) {
a1[++len1][0]=i-t,a1[len1][1]=i-1;
num1[len1][0]=tmp1,num1[len1][1]=tmp2;
}
t=tmp1=tmp2=0;
}
}
t=tmp1=tmp2=0;
for(int i=0; i<=n; i++) {
if(t2[i]=='1') {
t++;
if(s2[i]=='1')tmp2++;
else tmp1++;
} else {
if(t>1) {
a2[++len2][0]=i-t,a2[len2][1]=i-1;
num2[len2][0]=tmp1,num2[len2][1]=tmp2;
}
t=tmp1=tmp2=0;
}
}
a1[len1+1][0]=a2[len2+1][0]=N;
}
signed main() {
ios::sync_with_stdio(false);
cin>>T;
while(T--) {
cin>>n>>s1>>s2>>t1>>t2;
yu();
int sum=0,j1=0,j2=0;
while(true) {
if(j1>=len1&&j2>=len2)
break;
if(a1[j1+1][0]<=a2[j2+1][0]) {
j1++;
for(int i=a1[j1][0]; i<=a1[j1][1]; i++) {
if(s2[i]=='1') {
if(num1[j1][1])
num1[j1][1]--,s1[i]='1';
else
num1[j1][0]--,s1[i]='0';
} else {
if(num1[j1][0])
num1[j1][0]--,s1[i]='0';
else
num1[j1][1]--,s1[i]='1';
}
}
} else {
j2++;
for(int i=a2[j2][0]; i<=a2[j2][1]; i++) {
if(s1[i]=='1') {
if(num2[j2][1])
num2[j2][1]--,s2[i]='1';
else
num2[j2][0]--,s2[i]='0';
} else {
if(num2[j2][0])
num2[j2][0]--,s2[i]='0';
else
num2[j2][1]--,s2[i]='1';
}
}
}
}
for(int i=0; i<n; i++)
if(s1[i]==s2[i])
sum++;
cout<<sum<<endl;
}
return 0;
}