https://www.luogu.com.cn/problem/P1540
#include<bits/stdc++.h>
using namespace std;
int neicun[1003]={0};//内存数组,存放已查到的单词
queue <int> que;
int main()
{
int m,n;//m表示内存可以存几个单词,n表示一共几个单词
scanf("%d%d",&m,&n);
int cnt=0;//查寻外存总次数
while(n--)
{
int en;//定义单词
scanf("%d",&en);
if(neicun[en]==0)//要是这个单词在内存没有的话,就进行如下操作
{
++cnt;//查找次数+1
que.push(en);//单词进队
neicun[en]=1;//内存数组对应地方标记已进队
if(que.size()>m)//若队列长度已经达到内存给的最大值了
{
neicun[que.front()]=0;//就把最先进来的单词逻辑抹去
que.pop();//然后物理抹去
}
}
}
printf("%d\n",cnt);
return 0;
}