题意:
计算机有M个内存,每个内存可以存一个单词,如果计算机内存里存储某些单词,则不需要向外界搜索,如果有新的单词,计算机就会把内存中第一个单词删除并添加这个新的单词,现在要你求总共需要添加多少个,一开始内容为空。
思路:
开一个vector容器,每次遍历即可,主要想练练vector。
代码:
//
//Write by Yuan Xilan on 2019...
//
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define ms(s) memset(s, 0, sizeof(s))
const int inf = 0x3f3f3f3f;
const int maxn = 1e+5;
std::vector<int> k;
int main(int argc, char * argv[])
{
std::ios::sync_with_stdio(false);
int N,M,u;
cin >> M >> N;
int num = 0;
while(N--){
cin >> u;
if((int)k.size() == 0){
num++;
k.push_back(u);
continue;
}
for(int i=0; i<(int)k.size(); ++i){
if(k[i] == u) break;
if(i == (int)k.size() - 1){
num++;
if((int)k.size() == M){
std::vector<int>::iterator it = k.begin()+0;
k.erase(it);
k.push_back(u);
}
else{
k.push_back(u);
}
}
}
}
cout << num << endl;
return 0;
}