1 solutions
-
0
本题需要用到队列和map
map<int, bool>vis; int q[1000005]; int head=1, tail=0;
定义基本变量
void push(int x){ tail++; q[tail]=x; } void pop(){ head++; }
队列函数
int n, m; cin >> m >> n; int cnt=0;
输入,定义
for(int i = 0;i <= n;i++){ int a; cin >> a; if(!vis[a]){//如果没有在内存中 cnt++;//答案++ push(a);//将a加入答案队列中 vis[a]=true;//标记 if(tail-head+1>m){//如果溢出 vis[q[head]]=false;//尾部标记推出 pop();//pop } } } cout << cnt;
- 1
Information
- ID
- 886
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 16
- Accepted
- 3
- Uploaded By