代码打印
2025-cpc-24
2025-05-18 15:23:08
#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<cstring>
#include<unordered_map>
#include<set>
#include<queue>
#include<unordered_set>
#include<cmath>
#include<stack>
#include <bitset>
#include<algorithm>
#define ll long long
using namespace std;
const int N = 805;
int a[N], _, p[N];
vector<int> g[N];
bitset<N> vis;
int main() {
int t;
cin >> t;
while (t--) {
int ans = 0;
int n, m, cnt=0;
memset(p, 0, sizeof p);
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
g[i].clear();
}
for (int i = 1; i <= n; ++i) {
cin >> a[i];
g[a[i]].push_back(i);
}
for (int i = 1; i <= 3 * n; ++i) cin >> _;
vis.reset();
for (int i = 1; i <= n; ++i) {
p[a[i]]++;
if (vis[a[i]]) {
++ans; continue;
}
else {
if (cnt < m) {
vis[a[i]] = 1;
++cnt;
continue;
}
int idx = a[i];
int ma = p[a[i]] - i;
for (int j = 1; j <= n; ++j) {
if (vis[j]) {
if (p[j] == g[j].size()) {
idx = j;
continue;
}
if (g[j][p[j]] - i < ma) {
ma = g[j][p[j]] - i;
idx = j;
}
}
}
vis[a[i]] = 1;
vis[idx] = 0;
}
}
cout << ans << endl;
}
}
共 1 条回复
1