#include <bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define mp(x, y) make_pair(x, y)
#define eb(...) emplace_back(__VA_ARGS__)
#define fro(i, x, y) for (int i = (x); i <= (y); i++)
#define pre(i, x, y) for (int i = (x); i >= (y); i--)
inline void JYFILE19();
bool ST;
const int N = 1e6 + 10;
const int mod = 998244353;
int n, m;
char s1[N], s2[N];
char t1[N], t2[N];
inline void solve() {
cin >> n;
cin >> (s1 + 1);
cin >> (s2 + 1);
cin >> (t1 + 1);
cin >> (t2 + 1);
int S1[2] = {}, F1[2] = {};
int S2[2] = {}, F2[2] = {};
int ns = 0;
int l1 = 1, r1 = 1;
int l2 = 1, r2 = 1;
while (r1 <= n || r2 <= n) {
if (r1 <= r2) {
l1 = r1, S1[0] = S1[1] = F1[0] = F1[1] = 0;
if (t1[r1] == '0') {
S1[s1[r1] - '0']++, r1++;
} else {
for ( ; r1 <= n && t1[r1] == '1'; r1++) S1[s1[r1] - '0']++;
}
} else {
l2 = r2, S2[0] = S2[1] = F2[0] = F2[1] = 0;
if (t2[r2] == '0') {
S2[s2[r2] - '0']++, r2++;
} else {
for ( ; r2 <= n && t2[r2] == '1'; r2++) S2[s2[r2] - '0']++;
}
}
int l = max(l1, l2);
int r = min(r1, r2) - 1;
if (l <= r) {
int sm = r - l + 1, o0 = 0, o1 = 0;
auto chk1 = [&](int p) { return (S1[p] || (S1[p ^ 1] && F1[p])); };
auto chk2 = [&](int p) { return (S2[p] || (S2[p ^ 1] && F2[p])); };
auto del1 = [&](int p) { if (S1[p]) S1[p]--; else S1[p ^ 1]--, F1[p]--; };
auto del2 = [&](int p) { if (S2[p]) S2[p]--; else S2[p ^ 1]--, F2[p]--; };
auto get1 = [&](int p) { return S1[p] + min(S1[p ^ 1], F1[p]); };
auto get2 = [&](int p) { return S2[p] + min(S2[p ^ 1], F2[p]); };
while (sm && chk1(0) && chk2(0)) del1(0), del2(0), sm--, o0++, ns++;
while (sm && chk1(1) && chk2(1)) del1(1), del2(1), sm--, o1++, ns++;
int s = min(get1(1), get2(1));
F1[1] += min(s, o0);
F2[1] += min(s, o0);
}
}
cout << ns << "\n";
}
signed main() {
JYFILE19();
int t;
cin >> t;
while (t--) solve();
return 0;
}
bool ED;
inline void JYFILE19() {
freopen("edit.in", "r", stdin);
freopen("edit.out", "w", stdout);
srand(random_device{}());
ios::sync_with_stdio(0), cin.tie(0);
double MIB = fabs(&ST-&ED) / 1000000, LIM = 512;
cerr << MIB << " mib.\n", assert(MIB <= LIM);
}