请问两串代码有何区别
  • 板块题目总版
  • 楼主Tlin_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/14 17:32
  • 上次更新2024/8/14 20:03:29
查看原帖
请问两串代码有何区别
546567
Tlin_楼主2024/8/14 17:32

P1540

如下所示,a.push(x)这一串代码必须放在最后,也就是说必须先清空队首才可以把新的数字放入队列,为什么?

如果先放入队列,再清空队首就只得90分

蒟蒻膜拜各位大佬orz

#include <bits/stdc++.h>
using namespace std;
bool m[1005]={};
queue <int> a;
int main (){
	int i, n,x,ans=1;
	cin >> i>> n>> x;
	m[x]=1; a.push(x); n--; x=0;
	while (n!=0){
		cin >> x;
		n--;
		
		if (m[x]==0) {
			m[x]=1;
			ans++;
			if (a.size()>=i) {m[a.front()]=0;a.pop();}//检测队列是否还有空位
			a.push(x);//位置不可调换
		}
	}
	cout << ans;
	return 0;
}
2024/8/14 17:32
加载中...