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;
}

浙公网安备 33010602011771号