STL queue队列:
#include<iostream>
#include<queue>
using namespace std;
int main()
{
int m,n;
cin>>m>>n;
queue<int>machine;
int hash[1003]={0};//用哈希检查内存中有没有单词
//hash[i]=1表示单词i在内存中
int cnt=0;
while(n--)
{
int word;//输入的单词
cin>>word;
if(!hash[word])//判断word是否在内存中,不在则运行以下语句
{
hash[word]=1;//将此单词改为已读
cnt++;//查询次数加一
machine.push(word);//将查询单词输入队尾
while(int(machine.size())>m)//判断队列是否满了
{
hash[machine.front()]=0;//将队首的单词改为未知,因为即将踢出队列
machine.pop();//删除队首元素
}
}
}
cout<<cnt;//输出查询次数
return 0;
}