我使用建树函数时返回值出问题,因该是死循环了,不知道怎么改
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
int a[100005];
int tree_s[300005];
int n,m;
int build_tree(int l,int r,int x)
{
if(l==r)
{
tree_s[x]=a[l];
return a[l];
}
int mid=(l+r)/2;
+tree_s[x]=build_tree(1,mid,2*x)+build_tree(mid+1,n,2*x+1);
return tree_s[2*x]+tree_s[2*x+1];
}
signed main()
{
ios::sync_with_stdio(0);
cout.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
build_tree(1,n,1);
return 0;
}