4,13,15~20 WA了
#include<bits/stdc++.h>
#define min(A,B) A<B?A:B
#define N 100005
using namespace std;
struct set{
int s[2],r;
}seta[N],setb[N];
int t,n,cnta,cntb,p0,p1,ia,ib,ans;
bool a[N],b[N],ta[N],tb[N];
int main()
{
cin>>t;
while(t--)
{
cin>>n;getchar();
memset(seta,0,sizeof(seta));
memset(setb,0,sizeof(setb));
cnta=cntb=ans=ia=ib=0;
for(int i=1;i<=n;i++) a[i]=getchar()=='1';getchar();
for(int i=1;i<=n;i++) b[i]=getchar()=='1';getchar();
for(int i=1;i<=n;i++)
{
ta[i]=getchar()=='1';
cnta+=!(ta[i]&ta[i-1]);
seta[cnta].r=i,seta[cnta].s[a[i]]++;
}getchar();
for(int i=1;i<=n;i++)
{
tb[i]=getchar()=='1';
cntb+=!(tb[i]&tb[i-1]);
setb[cntb].r=i,setb[cntb].s[b[i]]++;
}getchar();
for(int i=1;i<=n;i++)
{
ia+=i>seta[ia].r,ib+=i>setb[ib].r;
p0=min(seta[ia].s[0],setb[ib].s[0]),p1=min(seta[ia].s[1],setb[ib].s[1]);
seta[ia].s[0]-=p0,setb[ib].s[0]-=p0,seta[ia].s[1]-=p1,setb[ib].s[1]-=p1;
ans+=p0+p1;
}
cout<<ans<<endl;
}
return 0;
}