1 条题解

  • 1
    @ 2026-9-7 18:26:03
    #include <queue>
    #include <set>
    using namespace std;
    
    int main()
    {
        int M, N;
        cin >> M >> N;
        queue<int> q;
        set<int> mem;
        int ans = 0;
    
        for(int i = 0; i < N; i++)
        {
            int x;
            cin >> x;
            if(mem.find(x) == mem.end())
            {
                ans++;
                // q.size()转int,消除signed/unsigned警告
                if((int)q.size() >= M)
                {
                    int out = q.front();
                    q.pop();
                    mem.erase(out);
                }
                q.push(x);
                mem.insert(x);
            }
        }
        cout << ans << endl;
        return 0;
    }
    
    
    
    • 1

    信息

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