线段树全WA求助
查看原帖
线段树全WA求助
752094
MornHus楼主2023/3/5 13:22
#include<bits/stdc++.h>
using namespace std;
int read(){
	int x=0;
	int f=1;
	char c=getchar();
	while(c>'9'&&c<'0'){
		if(c=='-')f=-1;
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		x=(x<<1)+(x<<3)+(c^'0');
		c=getchar();
	}
	return x*f;
}
int n,m;
int tree[1000001<<2];
void pushup(int &t0,const int &t1,const int &t2){
	t0=min(t1,t2);
}
void build(int x,int l,int r){
	if(l==r){
		tree[x]=read();
	}else{
		int mid=(l+r)>>1;
		build(x<<1,l,mid);
		build(x<<1|1,mid+1,r);
		pushup(tree[x],tree[x<<1],tree[x<<1|1]); 
	}
}
int query(int x,int l,int r,int L,int R){
	if(L<=l&&r<=R){
		return tree[x];
	}else{
		int mid=(l+r)>>1;
		int res=0x7fffffff;
		if(L<=mid){
			pushup(res,res,query(x<<1,l,mid,L,R));
		}
		if(R>mid){
			pushup(res,res,query(x<<1|1,mid+1,r,L,R));
		}
		return res;
	}
}
int main(){
	n=read();
	m=read();
	build(1,1,n);
	for(int i=1;i<=n-m+1;i++){
		printf("%d\n",query(1,1,n,i,i+m-1));
	}
	return 0;
} 
2023/3/5 13:22
加载中...