洛谷历险记p1540 queue的使用

#include <iostream>
#include <queue>

using namespace std;
#define sign(a){a>0 ? 1:-1}

int main() {
	int m, n;
	int temp;
	bool flag = false;
	int count = 0;
	cin >> m >> n;//m是内存容量,n是单词个数
	queue<int> q;//内存
	while (n--) {
		flag = false;
		cin >> temp;
		for (int  i = 0; i < q.size(); i++)
		{
			if (temp == q.front()) {
				flag = true;
			}
			q.push(q.front());
			q.pop();
		}
		if (flag) {
			continue;
		}
		else {
			count++;
			if (q.size() == m) {
				q.pop();
				q.push(temp);
			}
			else {
				q.push(temp);
			}

		}
	}
	cout << count;
	return 0;
}

用了个偷懒的queue,很方便就能实现题意中的先进先出

注意点:队列的pop函数只负责出队,并不会返回队头元素。

发布了24 篇原创文章 · 获赞 3 · 访问量 1902

猜你喜欢

转载自blog.csdn.net/z1261203654/article/details/104646356
今日推荐