P1540 [NOIP 2010 提高组] 机器翻译

开心() 最近第一次靠自己AC哈哈哈哈哈 逐渐体会到喜欢算法的人的乐趣所在了 嘻嘻
总结几个点~

查找元素:新建一个函数,利用&把队列传进去,但这里切记要再创建一个临时队列,直接使用参数改变的是原始队列即使命名不同。然后利用empty遍历队列,记得写不满足时的return语句
我刚开始还以为要创造固定长度的队列,结果看不懂GPT给的code。突然意识到可以利用size判断队列是否满足指定大小,机智如我!

#include<bits/stdc++.h>
using namespace std;
bool contains(queue<int>& q,int y){
//	创建临时队列,不能直接使用定义的参数q
    queue<int> tempq=q; 
	while(!tempq.empty()){
		if(tempq.front()==y) return true;
			tempq.pop();	
	}
//	不满足条件时返回false 
	return false;
}
int main(){
//	内存中的单元 
	queue<int> q;
	int m,n,x,count=0;
	cin>>m>>n;
	for(int i=0;i<n;i++){
		cin>>x;
		if(contains(q,x)==true) continue;
		else if(q.size()<m){
		q.push(x);
		count++;	
		}
		else if(q.size()==m){
		q.pop();
		q.push(x);
		count++;	
		}
	}
	cout<<count;
	return 0;
}

posted @ 2025-03-26 19:25  夕瑶^  阅读(10)  评论(0)    收藏  举报