思路
- 使用暴力枚举,对于每一件礼物都遍历其颜色,检查它是否还符合条件。
- 在上一步的基础进一步优化使用hash表来加速遍历颜色的过程。
代码实现
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main()
{
int t;
cin >> t;
int n, m;
int a;
for (int i = 0; i < t; i++)
{
bool arr[201][201] = {false};
bool valid[201];
fill(valid, valid + 201, true);
cin >> n >> m;
int ans = n;
for (int j = 1; j <= n; j++)
{
for (int k = 1; k <= m; k++)
{
cin >> a;
arr[j][a] = true;
}
}
for (int j = 0; j < m; j++)
{
cin >> a;
for (int k = 1; k <= n; k++)
{
if (valid[k] && !arr[k][a])
{
ans--;
valid[k] = false;
}
}
cout << ans << " ";
}
cout << "\n";
}
return 0;
}