2 条题解

  • 1
    @ 2023-11-1 12:27:50

    #include<iostream>
    using namespace std;
    int a[1005],b[1005];
    int main(){
    int m,n,len=0,x,ans=0;
    cin>>m>>n;
    while(n--){
    cin>>x;
    if(b[x]==0){
    ans++;
    b[x]=1;
    if(len<m)
    a[++len]=x;
    else{
    b[a[1]]=0;
    for(int i=2;i<=m;i++)
    a[i-1]=a[i];
    a[m]=x;
    }
    }
    }
    cout<<ans;
    }

    • -1
      @ 2022-3-3 22:21:52

      /***************************************** Note : ******************************************/ #include <queue> #include <math.h> #include <stack> #include <stdio.h> #include <iostream> #include <string.h> #include <algorithm> using namespace std; #define LL long long const int N = 1e5 + 10; const int INF = 0x3f3f3f3f; int m,n; bool vis[N]; queue<int> p; int ans = 0; int main() { cin >> m >> n; for(int i = 1 ,x; i <= n ; i++) { cin >> x; if(vis[x]) continue; else { if(p.size() >= m) { vis[p.front()] = false; // 顺序很重要 p.pop(); // 一定要在 " vis[p.front()] = false; " 的后面 } p.push(x); vis[x] = true; ans++; } } cout << ans << endl; return 0; }

      • 1

      信息

      ID
      712
      时间
      1000ms
      内存
      128MiB
      难度
      5
      标签
      递交数
      135
      已通过
      55
      上传者