2 条题解
-
0李伦 (lilun00) LV 8 @ 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;
} -
02022-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
- 标签
- 递交数
- 188
- 已通过
- 77
- 上传者