洛谷题单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; }