程序崩了
查看原帖
程序崩了
1070431
ywtank楼主2024/9/5 21:39

想用n=10000,1≤m≤1001 \le m \le 100的数据做测试,但程序崩了,希望各位大佬帮忙看看。 生成数据代码(python):

s=open("D:\\111.txt",'w')
import random
s.write(str(random.randint(1,100))+'\n'+"10000\n")
for i in range(10000):
    s.write(str(random.randint(1,100))+'\n')
s.close()

c++运行代码:

#include <bits/stdc++.h>
using namespace std;
queue<int> q;
set<int> s;
int main(){
	freopen("C:\\111.txt","r",stdin);
	int m,n,c=0,sum=0;
	scanf("%d%d",&m,&n);
	for(int i=1;i<=n;i++){
		int k;
		scanf("%d",&k);
		if(s.find(k)!=s.end()){
			continue;
		}
		sum++;
		if(c>=m){
			int v=q.front();
			q.pop();
			s.erase(s.find(v));
			q.push(k);
			s.insert(k);
		}
		else{
			q.push(k);
			c++;
			s.insert(k);
		}
	}
	printf("%d",sum);
	return 0;
} 
2024/9/5 21:39
加载中...