#include <iostream>
#include <string>
#include <vector>

using namespace std;

int n;
string s[2],t[2];

struct range
{
	int l,r;
	int sum[2];
};
vector<range> r[2];

int main()
{
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);

	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	
	int T; cin>>T;
	
	while(T--)
	{
		cin>>n>>s[0]>>s[1]>>t[0]>>t[1];
		
		for(int k=0;k<2;k++)
		{
			
			for(int i=0;i<n;i++)
			{
				if(t[k][i]=='0'||r[k].empty()||(i>0&&t[k][i-1]=='0'))
				{
					range tmp;
					tmp.l=tmp.r=i,tmp.sum[0]=tmp.sum[1]=0;
					
					r[k].push_back(tmp);
				}
				
				r[k].back().sum[s[k][i]-'0']++;
				r[k].back().r=i;
			}
		}
		
		int ans=0;
		for(int i=0,j=0,k=0;i<n;i++)
		{
			while(r[0][j].r<i) j++;
			while(r[1][k].r<i) k++;

			if(r[0][j].sum[0]>0&&r[1][k].sum[0]>0)
			{
				ans++;
				r[0][j].sum[0]--;
				r[1][k].sum[0]--;
			}
			else if(r[0][j].sum[1]>0&&r[1][k].sum[1]>0)
			{
				ans++;
				r[0][j].sum[1]--;
				r[1][k].sum[1]--;
			}
		}

		cout<<ans<<"\n";
	
		r[0].clear(),r[1].clear();
	}	
	return 0;
}
