#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1;
int T,n,w[2],scnt[2],tcnt[2],ans;
string s,t,fs,ft;
signed 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>>s>>t>>fs>>ft,scnt[1]=scnt[0]=tcnt[1]=tcnt[0]=ans=0;
for(int i=0,j=0;i<n||j<n;){
while(i<n&&fs[i]=='1')scnt[1]+=s[i]=='1',scnt[0]+=s[i]=='0',i++;
while(j<n&&ft[j]=='1')tcnt[1]+=t[j]=='1',tcnt[0]+=t[j]=='0',j++;
if(i>j){
w[1]=min(scnt[1],tcnt[1]),w[0]=min(scnt[0],tcnt[0]);
ans+=w[1]+w[0],scnt[1]-=w[1],scnt[0]-=w[0],tcnt[1]=tcnt[0]=0;
if(scnt[t[j]-'0'])ans++,scnt[t[j]-'0']--;
j++,scnt[0]=min(scnt[0],i-j),scnt[1]=min(scnt[1],i-j);
}
else if(i<j){
w[1]=min(scnt[1],tcnt[1]),w[0]=min(scnt[0],tcnt[0]);
ans+=w[1]+w[0],tcnt[1]-=w[1],tcnt[0]-=w[0],scnt[1]=scnt[0]=0;
if(tcnt[s[i]-'0'])ans++,tcnt[s[i]-'0']--;
i++,tcnt[0]=min(tcnt[0],j-i),tcnt[1]=min(tcnt[1],j-i);
}
else{
if(i!=n)ans+=s[i]==t[j],i++,j++;
w[1]=min(scnt[1],tcnt[1]),w[0]=min(scnt[0],tcnt[0]);
ans+=w[1]+w[0],scnt[1]=scnt[0]=tcnt[1]=tcnt[0]=0;
}
}
cout<<ans<<'\n';
}
return 0;
}