#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+100,mod=1e9+7;
#define ll long long
string s1,s2;
string t1,t2;
int n;
int sum1[3][N],sum0[3][N],ne[3][N];
int cnt1[3],cnt0[3];
void solve(){
cin>>n;
cin>>s1>>s2>>t1>>t2;
s1=' '+s1,s2=' '+s2,t1=' '+t1,t2=' '+t2;
for(int i=1;i<=n;i++){
sum1[1][i]=sum1[1][i-1]+(s1[i]=='1');
sum0[1][i]=sum0[1][i-1]+(s1[i]=='0');
sum1[2][i]=sum1[2][i-1]+(s2[i]=='1');
sum0[2][i]=sum0[2][i-1]+(s2[i]=='0');
}
int lxt1=n+1,lxt2=n+1;
for(int i=n;i>=0;i--){
ne[1][i]=lxt1,ne[2][i]=lxt2;
if(t1[i]=='0') lxt1=i;
if(t2[i]=='0') lxt2=i;
}
ne[1][n+1]=n+2,ne[2][n+1]=n+2;
int res=0;
for(int i=0,j=0;i<=n+1&&j<=n+1;){
if(i==j){
res+=min(cnt1[1],cnt1[2])
+min(cnt0[1],cnt0[2]);
if(i>=1&&i<=n&&s1[i]==s2[j]) ++res;
int li=i,lj=j;
i=ne[1][i],j=ne[2][j];
cnt1[1]=sum1[1][i-1]-sum1[1][li],cnt0[1]=sum0[1][i-1]-sum0[1][li];
cnt1[2]=sum1[2][j-1]-sum1[2][lj],cnt0[2]=sum0[2][j-1]-sum0[2][lj];
}else if(i<j){
int c1=cnt1[1]+(s1[i]=='1'),c0=cnt0[1]+(s1[i]=='0');
int m1=min(c1,cnt1[2]),m0=min(c0,cnt0[2]);
res+=m1+m0;
int li=i;
i=ne[1][i];
cnt1[1]=sum1[1][i-1]-sum1[1][li],cnt0[1]=sum0[1][i-1]-sum0[1][li];
if(m1==c1&&m0==c0) cnt1[2]-=m1,cnt0[2]-=m0;
else if(c1>m1) cnt1[2]-=m1,cnt0[2]-=m0+c1-m1;
else cnt0[2]-=m0,cnt1[2]-=m1+c0-m0;
}else{
int c1=cnt1[2]+(s2[j]=='1'),c0=cnt0[2]+(s2[j]=='0');
int m1=min(cnt1[1],c1),m0=min(cnt0[1],c0);
res+=m1+m0;
int lj=j;
j=ne[2][j];
cnt1[2]=sum1[2][j-1]-sum1[2][lj],cnt0[2]=sum0[2][j-1]-sum0[2][lj];
if(m1==c1&&m0==c0) cnt1[1]-=m1,cnt0[1]-=m0;
else if(c1>m1) cnt1[1]-=m1,cnt0[1]-=m0+c1-m1;
else cnt0[1]-=m0,cnt1[1]-=m1+c0-m0;
}
}
cout<<res<<'\n';
}
signed main(){
freopen("edit.in","r",stdin);
freopen("edit.out","w",stdout);
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int T;
cin>>T;
while(T--) solve();
return 0;
}