l,r);pushup(ans,tmp1,tmp2);returnans;}voidsolve()tree.resize(n<<2);(inti=1;i<=n;++i)cin>>arr[i];build(1,1,n);// 从根节点开始建树for(inti=1;i<=m;++i){llop;cin>>op;if(op==1){lla,b;cin>>a>>b;modify(1,a,a,b);// 每次修改都是从编号为1开始的,因为编号1是树的顶端,往下分叉arr[a]=b;}if(op==2){lla,b