士兵殺敵(二)

2021-08-04 22:26:16 字數 1238 閱讀 5370

以前寫過bit樹狀陣列->鏈結bit樹狀陣列

題目:時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:5 描述

南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。

小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。

南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候,需要考慮到新增的殺敵數。

輸入

只有一組測試資料

第一行是兩個整數n,m,其中n表示士兵的個數(1

輸出對於每次查詢,輸出乙個整數r表示第m號士兵到第n號士兵的總殺敵數,每組輸出佔一行

樣例輸入

5 6

1 2 3 4 5

query 1 3

add 1 2

query 1 3

add 2 3

query 1 2

query 1 5

樣例輸出

688

20

個人理解:bit陣列的基本操作 加個字串比較或匹配就行了

以前寫過bit陣列的**

**ac情況:

**c:

# include# define max 1000000

int bf(char a,char b);//bf演算法 a為主串,b為被檢驗的串`返回b在a中的第乙個下標 若無返回0

int sum(int bit,int i); //求前i項和

void add(int bit,int i,int x); //把第i項改為bit[i]+=x

int a[max],m,n,i;

int main()

,s=;

//freopen("sss.txt","r",stdin);

scanf("%d %d",&a[0],&m);

for(i=1;i<=a[0];i++)

while(m--)

return 0;

}int bf(char a,char b)//bf演算法 a為主串,b為被檢驗的串`返回b在a中的第乙個下標 若無返回0

int sum(int bit,int i) //求前i項和

return sum;

}void add(int bit,int i,int x) //把第i項改為bit[i]+=x

}

士兵殺敵(二)

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候...

士兵殺敵(二)

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候...

士兵殺敵(二)

時間限制 1000 ms 記憶體限制 65535 kb 難度 5 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍經常想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。南將軍的某次詢問之後士兵i可能又殺敵q人,之後南將軍再詢問的時候...