洛谷题单P540,机器翻译
#include<bits/stdc++.h>
using namespace std;
int Hash[1003] = { 0 };//利用哈希检查内存中有没有单词,hash[i]=1,表示单词i在内存中
queue<int>mem; //用队列模拟内存
int main()
{
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int n, m,cnt=0;//cnt表示查字典的次数
cin >> m >> n;
while (n--){
int en; cin >> en;//输入一个英文单词
if (!Hash[en]){//如果内存中没有这个单词
++cnt;
mem.push(en);//单词入队列,放到队列尾部
Hash[en] = 1;//记录内存中这个单词
while (mem.size() > m){//内存满了
Hash[mem.front()] = 0;//从内存中删去单词
mem.pop();//从队尾去掉
}
}
}
cout << cnt<<"\n";
return 0;
}