描述
南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。
小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。
南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候,需要考慮到新增的殺敵數。
輸入
只有一組測試資料
第一行是兩個整數n,m,其中n表示士兵的個數(1
輸出對於每次查詢,輸出乙個整數r表示第m號士兵到第n號士兵的總殺敵數,每組輸出佔一行
樣例輸入
5 61 2 3 4 5
query 1 3
add 1 2
query 1 3
add 2 3
query 1 2
query 1 5
樣例輸出
68820
沒事來題線段樹練練手,然而還是好容易出錯。
#include #include #include #include #include #include #include #include #include #include #include using namespace std;
#define inf 0x3f3f3f3f
typedef long long ll;
struct node
}tree[4000005];
void buildtree(int root,int l,int r)
buildtree(2*root,l,tree[root].mid());
buildtree(2*root+1,tree[root].mid()+1,r);
}void add(int root,int w,int q)
if(w<=tree[root].mid())else
}ll query(int root,int a,int b)
if(b<=tree[root].mid())else if(a>tree[root].mid())else
return answer;
}int main()
while(m--)else
}return 0;
}
nyoj116 士兵殺敵(二) 線段樹)
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候...
nyoj116 士兵殺敵二(線段樹)
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候...
NYOJ 116 士兵殺敵(二)(線段樹)
時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候...