#include<iostream>
using namespace std;
int k,n,z,x[101],ls[101],nxt[101];
int main(){
cin>>k>>n;
for(int i=1;i<=n;i++)cin>>x[i],nxt[i]=2147483647,z=max(z,x[i]);
for(int i=1;i<=n;i++){
if(ls[x[i]])nxt[ls[x[i]]]=i;
ls[x[i]]=i;
}
for(int i=1;i<=z;i++)ls[i]=0;
int res=0,kfc=0;
for(int i=1,ans,ansnode;i<=n;i++){
if(ls[x[i]]){
ls[x[i]]=i;
continue;
}
if(kfc<k){
ls[x[i]]=i;
kfc++;
continue;
}
ans=ansnode=0;
for(int j=1;j<=z;j++){
if(ls[j]){
if(nxt[ls[j]]-ls[j]>ans){
ans=nxt[ls[j]]-ls[j];
ansnode=ls[j];
}
}
}
ls[x[ansnode]]=0;
ls[x[i]]=i;
res++;
}
cout<<res;
return 0;
}
https://www.luogu.com.cn/record/227591250
感觉是个挺简单的贪心模拟