线段树求助
查看原帖
线段树求助
681351
Tobiichi_Origami楼主2022/11/27 12:52
#include<bits/stdc++.h>
using namespace std;
struct tree{
	int l,r;
	int sum;
}t[1000001];
int a[5];
void pushup(int u)
{
	int tmp=t[u<<1].sum+t[u<<1|1].sum;
	t[u].sum=tmp;
}
void build(int u,int l,int r)
{
	t[u].l=l;t[u].r=r;
	if(l==r) 
	{
		t[u].sum=a[l];
		return ;
	}
	int mid=(l+r)>>1;
	build(u<<1,l,mid);
	build(u<<1|1,mid+1,r);
	pushup(u);
}
int query(int u,int l,int r)
{
	if(t[u].l>=l&&t[u].r<=r)
		return t[u].sum;
	int mid=(t[u].l+t[u].r)>>1;
	int res=0;
	if(mid>=l) res+=query(u<<1,l,r);
	if(mid<r) res+=query(u<<1|1,l,r);
	return res; 
}
int main()
{
	scanf("%d %d",&a[1],&a[2]);
	build(1,1,2);
	printf("%d",query(1,1,2));
	return 0;
}

莫名其妙70分,各位dalao帮帮我这个蒟蒻

2022/11/27 12:52
加载中...