link:點我點我
時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:3 描述
南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。
小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。
注意,南將軍可能會問很多次問題。
輸入
只有一組測試資料
第一行是兩個整數n,m,其中n表示士兵的個數(1
輸出對於每乙個詢問,輸出總殺敵數
每個輸出佔一行
樣例輸入
5 21 2 3 4 5
1 32 4
樣例輸出
69
首先先來個簡單的演算法,sum[m~n]=sum[n]-sum[m-1];
code:
#include#include#include#include#include#include#include#includeusing namespace std;
int a[1000000+10];
int sum[1000000+10];
int main()
while(m--)
return 0;
}
線段樹演算法,直接扔模板
注意:結構體裡不要申請用不到的變數,否則會memorylimitexceeded
code:
#include#include#include#include#include#include#include#includeusing namespace std;
struct tree
tree[1000010<<2];
void pushup(int o)
void build(int o,int l,int r)
int mid=(l+r)>>1;
build(o<<1,l,mid);
build(o<<1|1,mid+1,r);
pushup(o);
}int querysum(int o,int l,int r,int x,int y)
int main()
return 0;
}
nyoj108 士兵殺敵(一) (線段樹)
描述南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是兩個整數n,m,其中n表示士兵的個數 1 輸出對於每乙個詢問,輸出總...
nyoj 108 士兵殺敵(一)
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是...
NYOJ 108 士兵殺敵(一)
時間限制 1000 ms 記憶體限制 65535 kb難度 3 描述 南將軍手下有n個士兵,分別編號1到n,這些士兵的殺敵數都是已知的。小工是南將軍手下的軍師,南將軍現在想知道第m號到第n號士兵的總殺敵數,請你幫助小工來回答南將軍吧。注意,南將軍可能會問很多次問題。輸入 只有一組測試資料 第一行是兩...