代码打印

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 条回复

2025-cpc-root

1