#6莫名TLE
查看原帖
#6莫名TLE
886055
MoonCake2011楼主2024/1/1 08:44
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m;
int a[1000010],b[1000010];
inline void T(){
	map<int,int>mp;
	for(int i=1;i<=n;i++) mp[a[i]]++;
	map<int,int>::iterator iter=mp.begin();
	int mex=0;
	while(mp.count(mex)) mex=iter->first+1,iter++; 
	for(int i=1;i<=n;i++){
		int u=a[i];
		if(mp[u]==1) a[i]=min(mex,u);
		else a[i]=mex;
	}
	m--;
}
inline void solve(){
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	T();
	if(m==0){
		for(int i=1;i<=n;i++) cout<<a[i]<<" ";
		cout<<"\n";
		return;
	}
	T();
	if(m==0){
		for(int i=1;i<=n;i++) cout<<a[i]<<" ";
		cout<<"\n";
		return;
	}
	for(int i=1;i<=n;i++) b[i]=a[i];
	T(); 
	if(m%2==0){
		for(int i=1;i<=n;i++) cout<<a[i]<<" ";
		cout<<"\n";
		return;
	}
	else{
		for(int i=1;i<=n;i++) cout<<b[i]<<" ";
		cout<<"\n";
		return;
	}
}
int main() {
	freopen("bili.in","w",stdout);
	ios::sync_with_stdio(0); 
	cin.tie(0),cout.tie(0);
	int t;
	cin>>t;
	while(t--) solve();
	return 0;
}
2024/1/1 08:44
加载中...