南陽OJ 108 士兵殺敵(一) 線段樹模板

2021-08-06 02:51:45 字數 1186 閱讀 8283

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:3 描述

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

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

注意,南將軍可能會問很多次問題。

輸入

只有一組測試資料

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

輸出對於每乙個詢問,輸出總殺敵數

每個輸出佔一行

樣例輸入

5 2

1 2 3 4 5

1 32 4

樣例輸出

6

9

模板題卻錯了三發

第一次陣列開的太小,第二次開到4000000(學長說開到題中資料*4),爆了,然後開到2000000,不夠,又開到3000000,這才過,,,,

ac**:

#include#includeusing namespace std;

struct node

tree[3000000];

void pushup(int o)

void build(int o,int l,int r) //建樹

int mid=(l+r)/2;

build(o*2,l,mid);

build(o*2+1,mid+1,r);

pushup(o);

}int findsum(int o,int l,int r,int x,int y) //查詢x到y的和

int mid = (l+r) / 2;

if(y<=mid)

return findsum(o*2,l,mid,x,y);

else if(x>mid)

return findsum(o*2+1,mid+1,r,x,y);

else

return findsum(o*2,l,mid,x,mid)+findsum(o*2+1,mid+1,r,mid+1,y);

} int main()

return 0;

}

南陽OJ108 士兵殺敵(一)(線段樹)

士兵殺敵一 士兵殺敵 一 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 ...

nyoj108 士兵殺敵(一) (線段樹)

描述南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是兩個整數n,m,其中n表示士兵的個數 1 輸出對於每乙個詢問,輸出總...

NYOJ 108 士兵殺敵(一)(線段樹)

link 點我點我 時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一...