#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;const int N=1e5+5;int T,n,lst,ans,sz1,sz2,s[N][2];pair<int,int>p1[N],p2[N];char s1[N],s2[N],t1[N],t2[N];
void add1(int l,int r){if(l<=r)p1[++sz1]={s[r][0]-s[l-1][0],s[r][1]-s[l-1][1]};}
void add2(int l,int r){if(l<=r)p2[++sz2]={s[r][0]-s[l-1][0],s[r][1]-s[l-1][1]};}
int main(){freopen("edit.in","r",stdin),freopen("edit.out","w",stdout);
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>T;
while(T--){cin>>n>>s1>>s2>>t1>>t2,ans=sz1=sz2=0;int x=1,y=1;
for(int i=1;i<=n;i++)s[i][0]=s[i-1][0]+(s1[i-1]=='0'),s[i][1]=s[i-1][1]+(s1[i-1]=='1');
lst=0;for(int i=0;i<n;i++)if(t1[i]=='0')add1(lst+1,i),add1(i+1,i+1),lst=i+1;add1(lst+1,n);
for(int i=1;i<=n;i++)s[i][0]=s[i-1][0]+(s2[i-1]=='0'),s[i][1]=s[i-1][1]+(s2[i-1]=='1');
lst=0;for(int i=0;i<n;i++)if(t2[i]=='0')add2(lst+1,i),add2(i+1,i+1),lst=i+1;add2(lst+1,n);
while(x<=sz1&&y<=sz2){int v1=min(p1[x].fi,p2[y].fi),v2=min(p1[x].se,p2[y].se);ans+=v1+v2;
if(p1[x].fi+p1[x].se==p2[y].fi+p2[y].se)x++,y++;
else if(p1[x].fi+p1[x].se>p2[y].fi+p2[y].se){p1[x].fi-=v1,p1[x].se-=v2,p2[y].fi-=v1,p2[y].se-=v2;
if(p1[x].fi)p1[x].fi-=p2[y].fi+p2[y].se;else p1[x].se-=p2[y].fi+p2[y].se;y++;
}else{p1[x].fi-=v1,p1[x].se-=v2,p2[y].fi-=v1,p2[y].se-=v2;
if(p2[y].fi)p2[y].fi-=p1[x].fi+p1[x].se;else p2[y].se-=p1[x].fi+p1[x].se;x++;
}
}cout<<ans<<"\n";
}
}