社区讨论

不懂就问, 回答必关 (90tps)TLE

P1886【模板】单调队列 / 滑动窗口参与者 5已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@m6uaraub
此快照首次捕获于
2025/02/07 12:59
去年
此快照最后确认于
2025/11/04 09:50
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#define file(x) freopen(#x".in", "r", stdin), freopen(#x".out", "w", stdout)

using namespace std;

long long a[1000001];
long long q[100000001], q1[100000001];
int front = 1, rear = 0;
int front1 = 1, rear1 = 0;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n, k;
	cin >> n >> k;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		q[++rear] = a[i];
		q1[++rear1] = a[i];
	}
	while (front <= rear) {
		long long minn = INT_MAX;
		if (front + k - 1 > rear) {
			break;
		}
		int len = 0;
		while (len < k) {
			minn = min(q[front + len], minn);
			len++;
		}
		cout << minn << " ";
		++front;
	}
	cout << "\n";
	while (front1 <= rear1) {
		long long maxn = INT_MIN;
		if (front1 + k - 1 > rear1) {
			break;
		}
		int len = 0;
		while (len < k) {
			maxn = max(q1[front1 + len], maxn);
			len++;
		}
		cout << maxn << " ";
		++front1;
	}

	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...