问
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复6
  • 已保存回复7
  • 发布时间2024/8/6 14:47
  • 上次更新2024/8/6 15:39:59
查看原帖
问
1252442
lucy2012楼主2024/8/6 14:47

一个含有 nn 项的数列 (n<=2000000)(n<=2000000),求出每一项前的 mm 个数到它这个区间内的最小值。若前面的数不足 mm 项则从第 11 个数开始,若前面没有数则输出 00。

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e7+10;
int a[maxn],q[maxn];
int main() {
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1; i<=n; i++)
		scanf("%d",&a[i]);
	int t=0,h=1;
	printf("0\n");
	for(int i=1; i<n; i++) {
		while(t>=h&& (1) >=a[i])
			(2);
		q[(3)]=i;
		while(q[t]-(4)+1>m) h++;
		printf("%d\n",(5));
	}
	return 0;
}    

A.t++;A.t++;
B.t−−B.t-- C.++tC.++t
D.a[q[h]]D.a[q[h]]
E.a[h]E.a[h]
F.q[h]F.q[h]
G.a[q[t]]G.a[q[t]]
H.a[t]H. a[t]

这题怎么做啊 awaawa

2024/8/6 14:47
加载中...