求调
查看原帖
求调
561529
Infinite_Energy楼主2022/8/7 19:06
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000010],ans,x,y;
struct tree{
	long long l,r,minn;
}t[4000010];
long long read(){
	char ch=getchar();
	long long sgn=1,x=0;
	while(ch<'0'||ch>'9'){
		if(ch=='-'){
			sgn=-1;
		}
		ch=getchar();
	}
	while(ch>='0'&&ch<='9'){
		x=(x<<3)+(x<<1)+(ch&15);
		ch=getchar();
	}
	return x*sgn;
}
void write(long long n,bool p){
	if(n<0){
		putchar('-');
		n=-n;
	}
	if(n==0){
		if(p==true){
			putchar('0');
			return;
		}
	}
	write(n/10,0);
	putchar(n%10+'0');
}
void build(long long i,long long l,long long r){
	t[i].l=l;
	t[i].r=r;
	if(l==r){
		t[i].minn=a[l];
		return;
	}
	build(i*2,l,(l+r)/2);
	build(i*2+1,(l+r)/2+1,r);
	t[i].minn=min(t[i*2].minn,t[i*2+1].minn);
}
void step(long long i,long long x,long long y){
	if(x<=t[i].r&&y>=t[i].l){
		if(x<=t[i].l&&y>=t[i].r){
			t[i].minn=min(t[i*2].minn,t[i*2+1].minn);
			ans=min(t[i].minn,ans);
			return;
		}
		step(i*2,x,y);
		step(i*2+1,x,y);
		t[i].minn=min(t[i*2].minn,t[i*2+1].minn);
	}
}
int main(){
	n=read();
	m=read();
	for(int i=1;i<=n;i++){
		a[i]=read();
	}
	for(int i=1;i<=n;i++){
		x=i;
		y=i+m-1;
		ans=9999999999;
		step(1,x,y);
		printf("%lld\n",ans);
	}
	return 0;
}


输出全是9999999999

2022/8/7 19:06
加载中...