1 条题解

  • 4
    @ 2024-7-25 14:51:18
     
    #include <bits/stdc++.h>
    using namespace std;
    deque<int> dq;  //定义deque数据结构,<>中数据类型为int类型,命名为dq
    bool vis[1010] = {false};  //定义bool数组vis,初始化为false
    int m, n, a, dep = 0, cnt = 0;  //dep变量记录dq元素个数,cnt记录查找次数
    int main() {
        cin >> m >> n;
        for (int i = 1; i <= n; i++) {
            cin >> a;
            if (!vis[a]) {  //判断是否为新单词
                vis[a] = true;  //是,标记为已存单词
                cnt++;  //查找次数增加1
                if (dep == m) {  //判断dep是否达到M
                    vis[dq[0]] = false;  //达到,标记队首单词为新单词
                    dq.pop_front();  //删除队首单词
                    dq.push_back(a);  //在队尾插入新单词
                } else {
                    dep++;  //未达到,dep增加1
                    dq.push_back(a);  //队尾插入新单词
                }
            } 
        }
        cout << cnt;  //输出查找次数
        return 0;
    }
    

    信息

    ID
    1922
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    13
    已通过
    11
    上传者