#include <iostream>
#include <cstdio>
#define N 200001

using namespace std;

string s1,s2,t1,t2;
int n,a[N],b[N],c[N],d[N],l1,r1,l2,r2,ans;
int cnta0,cnta1,cntb0,cntb1;

int main()
{
	ios::sync_with_stdio( false );
	cin.tie( 0 );
	cout.tie( 0 );
	freopen( "edit.in" , "r" , stdin );
	freopen( "edit.out" , "w" , stdout );
	int T;
	cin >> T;
	while( T -- )
	{
		cin >> n;
		cin >> s1;
		cin >> s2;
		cin >> t1;
		cin >> t2;
		for( int i = 0 ; i < n ; i ++ )
		{
			a[i + 1] = s1[i] - '0';
			b[i + 1] = s2[i] - '0';
			c[i + 1] = t1[i] - '0';
			d[i + 1] = t2[i] - '0';
		}
		a[n + 1] = b[n + 1] = 0;
		c[n + 1] = d[n + 1] = 0;
		ans = 0;
		l1 = r1 = l2 = r2 = 0;
		cnta0 = cntb0 = cnta1 = cntb1 = 0;
		for( int i = 1 ; i <= n ; i ++ )
		{
			if( r1 < i )
			{
				l1 = r1 = i;
				cnta0 = cnta1 = 0;
				if( c[i] )
				{
					while( r1 <= n && c[r1] )
					{
						if( !a[r1] ) cnta0 ++;
						else cnta1 ++;
						r1 ++;
					}
					r1 --;
				}
				else
				{
					if( !a[i] ) cnta0 ++;
					else cnta1 ++;
				}
			}
			if( r2 < i )
			{
				l2 = r2 = i;
				cntb0 = cntb1 = 0;
				if( d[i] )
				{
					while( r2 <= n && d[r2] )
					{
						if( !b[r2] ) cntb0 ++;
						else cntb1 ++;
						r2 ++;
					}
					r2 --;
				}
				else
				{
					if( !b[i] ) cntb0 ++;
					else cntb1 ++;
				}
			}
			if( cnta0 && cntb0 )
				cnta0 --,cntb0 --,ans ++;
			else if( cnta1 && cntb1 )
				cnta1 --,cntb1 --,ans ++;
			else
			{
				if( cnta0 ) cnta0 --;
				else cnta1 --;
				if( cntb0 ) cntb0 --;
				else cntb1 --;
			}
		}
		cout << ans << '\n';
	}
	return 0;
}
