Homework Introduction

数组模拟队列

// 队列:先进先出
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int q[N], head = 1, tail;

int main() {
	// 入队
	q[++tail] = 12;
	// 输出队伍长度
	cout << tail - head + 1 << endl;
	// 输出队首
	if (head <= tail)
		cout << q[head] << endl;
	// 出队
	if (head <= tail)
		head++;
	return 0;
}

queue

// 队列:先进先出
#include <bits/stdc++.h>
using namespace std;

// STL  队列  <queue>
// 定义一个队列
queue<int> q; // 定义了一个存储整数类型的队列
int main() {
	// 入队
	q.push(12);
	// 输出队列的长度
	cout << q.size() << endl;
	// 判断是否为空
	if (q.empty())
		cout << "空" << endl;
	// 取队首元素
	if (!q.empty())
		cout << q.front() << endl;
	// 出队
	if (!q.empty())
		q.pop();
	return 0;
}

机器翻译

// 栈: 后进先出
// 队列 : 先进先出
#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
int q[N], head = 1, tail;
bool vis[N];
int m, n, ans, tmp;

int main() {
	cin >> m >> n;
	for (int i = 1; i <= n; i++) {
		cin >> tmp;
		if (vis[tmp])
			continue;
		ans++;
		// 入内存
		if (tail - head + 1 >= m) { // 判断内存是否满了
			vis[q[head]] = 0; // 取消在内存中的标记
			head++;
		}
		// 入内存
		vis[tmp] = 1; // 标记tmp 存放在内存中
		q[++tail] = tmp;
	}
	cout << ans;
	return 0;
}

deque

// 双端队列
// 两边都可以入和出
#include <bits/stdc++.h>
using namespace std;

deque<int> q; // 定义一个双端队列
int main() {
	// 插入,队首和队尾
	q.push_back(12); // 队尾插入
	q.push_front(1); // 队头插入
	// 判断是否为空
	if (q.empty())
		cout << "空" << endl;
	// 输出元素,输出之前得判断是否为空
	cout << q.front() << endl; // 队首
	cout << q.back() << endl; // 队尾元素
	// 弹出
	q.pop_back(); // 弹出队尾
	q.pop_front(); // 弹出队首
	// 容量 ,
	cout << q.size() << endl;
	// 使用 [] 访问元素
	cout << q[1] << endl;
	return 0;
}

Problem

Problem
B3616   【模板】队列
P1886   滑动窗口 /【模板】单调队列
P1090   [NOIP 2004 提高组] 合并果子
P1540   [NOIP 2010 提高组] 机器翻译
P10457   占卜DIY
P2058   [NOIP 2016 普及组] 海港
B3667   求区间所有后缀最大值的位置
P3512   [POI 2010] PIL-Pilots
P11963   [GESP202503 六级] 环线
P9422   [蓝桥杯 2023 国 B] 合并数列
P8661   [蓝桥杯 2018 省 B] 日志统计
P9518   queue
P2629   好消息,坏消息
P2564   [SCOI2009] 生日礼物
P6033   [NOIP 2004 提高组] 合并果子 加强版
P6510   奶牛排队
P8102   「LCOI2022」 Cow Insertion
P3522   [POI 2011] TEM-Temperature
P2032   扫描
P1440   求m区间内的最小值
P1714   切蛋糕
P11138   [APC001] C - Not APC
P1638   逛画展
P1996   约瑟夫问题
4938   【队列】周末舞会
4939   【队列】 打印机
4940   【队列】团体队列
4941   【队列】木叶村组队
4942   【队列】礼品摆放
4943   【队列】儿童节分糖果
4944   【队列】模拟队列操作
4945   【队列】士兵队列训练问题
B3842   [GESP202306 三级] 春游
B3843   [GESP202306 三级] 密码合规
B3848   [GESP样题 三级] 逛商场
B3849   [GESP样题 三级] 进制转换
B3867   [GESP202309 三级] 小杨的储蓄
B3868   [GESP202309 三级] 进制判断
B3925   [GESP202312 三级] 小猫分鱼
B3926   [GESP202312 三级] 单位转换
B3939   [GESP样题 四级] 绝对素数
B3940   [GESP样题 四级] 填幻方
Status
Done
Problem
42
Open Since
2025-8-6 0:00
Deadline
2025-8-31 23:59
Extension
24 hour(s)