线段树
2025-06-08 10:37:31
发布于:浙江
代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[114514],n;
struct node{
int l,r,val;
}tree[414514];
void build(int l,int r,int p){
tree[p].l=l,tree[p].r=r;
if(l==r){
tree[p].val=a[l];
return;
}
int mid=(l+r)/2;
build(l,mid,p*2);
build(mid+1,r,p*2+1);
tree[p].val=tree[p*2].val+tree[p*2+1].val;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
build(1,n,1);
for(int i=1;i<=4*n;i++)printf("%2d %2d %2d\n",tree[i].l,tree[i].r,tree[i].val);
return 0;
}
这里空空如也
有帮助,赞一个