#include <bits/stdc++.h>
using namespace std;
#define int long long
void __() {
int n, m;
cin >> n >> m;
string a, b;
cin >> a >> b;
int freq_a[26] = {0};
int freq_b[26] = {0};
// 统计 a 和 b 的字符频率
for (int i = 0; i < n; i++) freq_a[a[i] - 'a']++;
for (int i = 0; i < m; i++) freq_b[b[i] - 'a']++;
// 计算 a 和 b 直接匹配的字符数 k
int k = 0;
for (int i = 0; i < 26; i++) {
int min_freq = min(freq_a[i], freq_b[i]);
k += min_freq;
freq_a[i] -= min_freq;
freq_b[i] -= min_freq;
}
int mid = (n + m) / 2; // 计算左半部分的长度
if (n > m) {
// a 比 b 长,a 需要承担更多的修改
int sum = mid - k, last = (n - mid);
int ans1 = 0;
for (int c = 0; c < 26; c++) ans1 += freq_a[c] / 2;
sum -= min(ans1, last);
cout << max(0LL, sum) << '\n';
} else if (n < m) {
// b 比 a 长,b 需要承担更多的修改
int sum = mid - k, last = (m - mid);
int ans1 = 0;
for (int c = 0; c < 26; c++) ans1 += freq_b[c] / 2;
sum -= min(ans1, last);
cout << max(0LL, sum) << '\n';
} else {
// a 和 b 长度相同
cout << (m - k) << '\n';
}
}
signed main() {
int T;
cin >> T;
while (T--) __();
}
全部评论
(0) 回帖