void update(int rt,int l,int r,int p,int v){ //rt為節點下標(即編號),l,r為節點區間,p為需要修改處的下標 ,v為修改值
if(l==r){
sum[rt]+=v;
return;
}
int m=(l+r)>>1;
if(p<=m) //需要更新的節點在左子樹區間
update(rt<<1,l,m,p,v);
else //需要更新的節點在右子樹區間
update(rt<<1|1,m+1,r,p,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&&r<=rr) // 如果當前節點的區域真包含於要查詢的區間內,則返回節點資訊不需要往下遞迴
return sum[rt]; //會有多個遞迴,我們只要每個遞迴的最終不可在分的節點的權值。
int res=0; //返回值變數,初始化視情況而定
int m=(l+r)>>1;
if(ll<=m) //如果左子樹區間與查詢區間有交集
res+=query(rt<<1,l,m,ll,rr);//查詢區間不變
if(rr>m) //如果右子樹區間與查詢區間有交集,
//注意這裡不是else if,因為查詢區間可能同時和左右區間有交集
res+=query(rt<<1|1,m+1,r,ll,rr);
return res;
}
域名註冊並不複雜,主要有以下三個大體步驟:
首先、域名字首命名規則
不同型別的域名有不同的命名規則,比如中文域名需至少包含1個漢字,其餘部分可包含英文字母;英文域名只能使用英文字母(a~z,不區分大小寫)、數位(0~9)以及連線符(-);
其次、域名主體選取原則
用企業名稱的漢語拼音作為域名;用企業名稱相應的英文名作為域名;用企業名稱的縮寫作為域名;用漢語拼音的諧音形式給企業註冊域名;以中英文結合的形式給企業註冊域名;在企業名稱前後加上與網路相關的字首和字尾;用與企業名不同但有相關性的詞或片語作域名;不要註冊其他公司擁有的獨特商標名和國際知名企業的商標名;
最後、域名申請
國內的域名註冊商好壞難分,建議大家使用大平臺,比如阿里雲,服務品質有保障。這裡尤其推薦阿里雲域名註冊平臺。域名的註冊、實名認證、備案、域名解析一條龍服務。
int add(int x,int y){ //單點修改(使原值增加y,而不是修改為y)
for(;x<=n;x+=lowbit(x))
a[x]+=y;
}
int sum(int y){ //求0到y的區間和
int ans=0;
for(;y>0;y-=lowbit(y))ans+=a[y];
return ans;