提交时间:2023-03-23 21:39:03

运行 ID: 12294

#include<bits/stdc++.h> using namespace std; bool flag[1010]; //flag[a] = true a在内存中 flag[a] = false,a不在内存中 int b[1010];//存内存中的数字 int main() { int m, n, num, cnt = 0, ans = 0, l = 0; //cnt:内存中数的数量 ans:查找外存的次数 l:去掉的数的个数 cin >> m >> n; for ( int i = 1; i <= n; i++) { cin >> num; if(flag[num] == false) { ans++;//查找外存 flag[num] = true; cnt++;//内存中进来一个数 b[cnt] = num; if(cnt > m) {//内存中的数超过m了 l++;//按存入顺序去掉内存中最前面的数 flag[b[l]] = false; } } } cout << ans; return 0; }