社区讨论

用的高精度,越界了求救,数组没越界啊

P1816忠诚参与者 3已保存回复 5

讨论操作

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

当前回复
5 条
当前快照
1 份
快照标识符
@logrk85x
此快照首次捕获于
2023/11/02 13:46
2 年前
此快照最后确认于
2023/11/02 17:22
2 年前
查看原帖
CPP
#include<cstring>
#include<iostream>
#include<algorithm>
#include<climits>

using namespace std;

#define N 200005
#define LL long long
#define lc u<<1   //乘二  
#define rc u<<1|1 //乘二+1

int w[N];

struct Tree
{
	LL l,r,sum;     //线段树    懒标记是0和1
}tr[N*4];


void build(LL u,LL l,LL r)  //建树     (父节点,左端点,右端点)
{
	tr[u]={l,r,w[l]};
	if(l==r) return;
	LL m=l+r>>1;   //除二
	build(lc,l,m);
	build(rc,m+1,r);
}

LL query(LL u,LL l,LL r){      //区间查找(输出)  (父节点,总左端点,总右端点)
	LL max=INT_MAX;
	if(l==r) return tr[u].sum;
	LL m=tr[u].l+tr[u].r>>1;  //除二
	if(l<=m) max=min(max,query(lc,l,r));
	if(r>m) max=min(max,query(rc,l,r));
	return max;
}

int main()
{
	int n,m,x,y;
	cin>>n>>m;
	for(int i=1;i<=n;++i)
	{
		cin>>w[i];
	}
	
build(1,1,n);
while(m--)
{
	cin>>x>>y;
	cout<<query(1,x,y)<<' ';
}
return 0;

}

回复

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

正在加载回复...