#include<iostream>
using namespace std;
int a[1002],top;
bool b[1002];
int main(void)
{
int m,n,t,ans=0;cin>>m>>n;
for(int i=1;i<=n;i++)
{
cin>>t;t++;//t++避免t为0的情况
if(!b[t])
{
ans++;top++;
if(top>m)top=1;
if(a[top])b[a[top]]=0;
a[top]=t;b[t]=1;
}
}
cout<<ans;
}
利用桶排序的思想,因为判定是否替换的方式是这个数是否是0(会导致判定错误而错三个点),而数据中又有0,所以对每个输入的数+1处理
于是就a了这道纯模拟题