A82884 题解
2026-09-05 19:19:01
发布于:浙江
23阅读
0回复
0点赞
题干分析
有一个容量为 的展示柜,要放入 个礼物,如果架子上有了,就不摆,否则,就找一个位置摆放。如果柜子满了,就把最早放上的礼物拿走。每次摆放一个礼物,高兴程度就会增加 。问高兴程度最终是多少。
思路
用队列模拟,在放之前看看队列里是否有这个元素,如果没有,就入队,在判断一下队列有没有满,如果满了,就出队。另外,可以使用 数组记录队列里的元素。
代码
本人认为思路已经比较详细,如需代码请私信。其实是我懒得放。
UPD:修改了一下错别字。
全部评论 2
//答案
#include <bits/stdc++.h>
using namespace std;
bool cnt[1010];
int main(){
int m,n;
cin >> m >> n;
int sum=0;
queue<int>a;
for(int i = 1;i<=n;i++){
bool flag=true;
int x;
cin >> x;
if(cnt[x])continue;
if(a.size()<m){
a.push(x);cnt[x]=true; }else{ int top=a.front(); a.pop(); cnt[top]=false; a.push(x); cnt[x]=true; } sum++; } cout << sum; return 0;}
```cpp3天前 来自 广东
0[链接描述](url)3天前 来自 广东
0













有帮助,赞一个