題目:給定兩個數字表,裡刪除最少數量數字,是的兩個表的集合元素相同(順序無所謂)。
分析:簡單題。直接排序,然後計數相同的個數,做差即可。
說明:╮(╯▽╰)╭。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
int list1[10001];
int list2[10001];
int main()
{
int T, N, M;
while (~scanf("%d",&T))
while (T --) {
scanf("%d%d",&N,&M);
for (int i = 0; i < N; ++ i)
scanf("%d",&list1[i]);
for (int i = 0; i < M; ++ i)
scanf("%d",&list2[i]);
sort(list1, list1+N);
sort(list2, list2+M);
int p = 0, q = 0, count = 0;
while (p < N && q < M) {
if (list1[p] == list2[q]) {
count ++;
p ++;
q ++;
}else if (list1[p] < list2[q])
p ++;
else q ++;
}
printf("%d\n",N+M-2*count);
}
return 0;
}