int main(){
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
memset(a,0,sizeof(a));
int e;
for (int i = 1; i <=n; i++) {
scanf("%d",&e);
a[i]=e;
}
build(1,1,n); //建树
char str[2];
int num=0;
for(int i=1;i<=m;i++){
scanf("%s",str);
int x,y;
scanf("%d %d",&x,&y);
if(str[0]=='Q'){
printf("%d\n",query(1,1,n,x,y));
}
if(str[0]=='U'){
update(1,1,n,x,y);
}
}
}
return 0;
void update(int rt,int l,int r,int x,int v){ //rt为节点下标(即编号),l,r为节点区间,p为需要修改处的下标 ,v为修改值
if(l==r){
sum[rt]=v;
return;
}
int m=(l+r)>>1;
if(x<=m) //需要更新的节点在左子树区间
update(rt<<1,l,m,x,v);
else //需要更新的节点在右子树区间
update(rt<<1|1,m+1,r,x,v);
首先:双方要签订完整的协议
协议一定要包括你需求外包公司给你企业网站达到什么样的标准。阿里云是国内最大的公共云计算服务提供商,在信誉这方面你丝毫不用担心。
其次:与技术人员有良好的沟通
在制作网站的过程中双方协调沟通这样建设出来的网站才能更适合自己的需求。阿里云服务的客户数超过140万,遍布互联网、移动APP、音视频、游戏、电商等各个领域,客服沟通能力极佳,阿里云的设计师会按照你的要求设计制作,验收后交付给你的定制服务。
第三:看售后服务
网站建设好了之后公司内部也会进行多方面的调试,但是自己也要指定企业某同事进行试用,你所找的人相当于你企业网站将面临的用户需求,他在试用的过程中肯定能发现问题或者自己的需求再使用网站的时候有些地方使用不方便,您可以找技术人员快速的更改。
if(x<=m) //需要更新的节点在左子树区间
update(rt<<1,l,m,x,v);
else //需要更新的节点在右子树区间
update(rt<<1|1,m+1,r,x,v);
push_up(rt);
}
//query(1,1,n,x,y) 编号为1,区间1-n,查询区间为x-y
int query(int rt,int l,int r,int ll,int rr){ //rt为节点下标 (编号),l,r为节点区间,ll,,rr为查询区间
if(ll<=l&&rr>=r){ // 如果当前节点的区域真包含于要查询的区间内,则返回节点信息不需要往下递归
return sum[rt];//会有多个递归,我们只要每个递归的最终不可在分的节点的权值。
}
int m=(l+r)>>1;
int res=0;
if(ll<=m) //如果左子树区间与查询区间有交集
res=max(res,query(rt<<1,l,m,ll,rr));//查询区间不变
if(rr>m) //如果右子树区间与查询区间有交集,
//注意这里不是else if,因为查询区间可能同时和左右区间有交集
res=max(res,query(rt<<1|1,m+1,r,ll,rr));
return res;
}