Run ID | 作者 | 问题 | 语言 | 测评结果 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
12294 | huyanfeng | 机器翻译 | C++ | 通过 | 0 MS | 248 KB | 745 | 2023-03-23 21:39:03 |
#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; }