60分救命!
查看原帖
60分救命!
185348
Zhe8468楼主2020/7/21 14:34

这个代码为毛只有60分?

#include <bits/stdc++.h>
#define MAXN 1050
using namespace std;
int a[MAXN],q[200],b[MAXN];
//a表示单词数组 q表示队列 b就是一个记录状态的桶
int main()
{
	int m,n;
	cin>>m>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
    //head从1开始 tail在head的左边 方便插入
	int head=1,tail=0;
	for(int i=1;i<=n;i++){
		if(!b[a[i]]){ //该单词在内存中没有
			q[++tail] = a[i]; //插入队列
			b[a[i]] = 1; //标记一下
		}
		if(tail-head>=m){ //没有满的时候
			b[q[head]] = 0; //出去了就删除标记
			head++;//头部往右移动一位
		}
	}
	cout<<tail<<endl;//tail其实就是结果了
	
	return 0;
}


2020/7/21 14:34
加载中...