RT,贪心匹配.
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,a[2][N],b[2][N],sz1,sz2,bel[2][N],cnt[2][2][N];
signed main(){
freopen("edit.in","r",stdin);
freopen("edit.out","w",stdout);
int T;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
sz1=sz2=0;
for(int i=1;i<=n;++i){
scanf("%1d",&a[0][i]);
}
for(int i=1;i<=n;++i){
scanf("%1d",&a[1][i]);
}
for(int i=1;i<=n;++i){
scanf("%1d",&b[0][i]);
if(!b[0][i]||b[0][i]!=b[0][i-1])++sz1;
bel[0][i]=sz1;
++cnt[0][a[0][i]][sz1];
// cerr<<i<<" "<<sz1<<endl;
}
int ans=0;
for(int i=1;i<=n;++i){
scanf("%1d",&b[1][i]);
if(!b[1][i]||b[1][i]!=b[1][i-1])++sz2;
bel[1][i]=sz2;
++cnt[1][a[1][i]][sz2];
// cerr<<i<<" "<<sz2<<endl;
}
for(int i=1;i<=n;++i){
if(cnt[0][0][bel[0][i]]&&cnt[1][0][bel[1][i]])--cnt[0][0][bel[0][i]],--cnt[1][0][bel[1][i]],++ans;
else if(cnt[0][1][bel[0][i]]&&cnt[1][1][bel[1][i]])--cnt[0][1][bel[0][i]],--cnt[1][1][bel[1][i]],++ans;
else if(cnt[0][0][bel[0][i]])--cnt[0][0][bel[0][i]],--cnt[1][1][bel[1][i]];
else --cnt[0][1][bel[0][i]],--cnt[1][0][bel[1][i]];
}
printf("%d\n",ans);
}
return 0;
}