no oj 士兵殺敵(五)(區間更新)

2021-07-25 05:11:37 字數 1061 閱讀 9607

時間限制:

2000 ms  |  記憶體限制:

65535 kb

難度:5 描述

南將軍麾下有百萬精兵,現已知共有m個士兵,編號為0~m,每次有任務的時候,總會有一批編號連在一起人請戰(編號相近的人經常在一塊,相互之間比較熟悉),最終他們獲得的軍功,也將會平分到每個人身上,這樣,有時候,計算他們中的哪乙個人到底有多少軍功就是乙個比較困難的事情。

在這樣的情況下,南將軍卻經常會在許多次戰役之後詢問軍師小工第i號士兵到第j號士兵所有人的總軍功數。

請你幫助軍師小工回答南將軍的提問。

輸入

只有一組測試資料

第一行是三個整數n,c,q(1<=n,c,q<=1000000),其中n表示士兵的總數。

隨後的c行,每行有三個整數mi,ni,ai(0<=mi<=ni<=n,0<=ai<=100),表示從第mi號到第ni號士兵所有人平均增加了ai的軍功。

再之後的q行,每行有兩個正正數m,n,表示南將軍詢問的是第m號士兵到第n號士兵。

輸出請對每次詢問輸出m號士兵到第n號士兵的總軍功數,由於該數值可能太大,請把結果對10003取餘後輸出

樣例輸入

5 3 2

1 3 2

2 4 1

5 5 10

1 52 3

樣例輸出

19

6

**[張云聰]原創

這道題太坑啦!!!題目描述就有問題啊!一直wa!!!

從0開始,到n

#include#includeusing namespace std;

#define ll long long

ll a[1000010];

int main()

for(int i=1;i<=n;i++)

a[i]=(a[i]+a[i-1]);

for(int i=1;i<=n;i++)

a[i]=(a[i-1]+a[i])%10003;

while(q--)

return 0;

}

NYoj 116士兵殺敵(二)區間求和,單點更新

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

NYOJ士兵殺敵5 線段樹的區間更新

初學線段樹 區域更新 實現原理 初始的時候,給每個樹節點都給乙個標記,當你在更新某一段區間的時候,要映入乙個標記陣列,來標記該樹節點更新後是否要將更新其子節點,如果該節點的標記值不為空,則表示要對該節點的子節點進行更新,更新完後取消該節點的標記 反之,則無需更新該節點的子節點,該線段樹所對應區間的值...

hdu 1698 區間更新

基礎題 初學 include include using namespace std define lson l m rt 1 define rson m 1 r rt 1 1 const int maxn 101000 int h w n int col maxn 2 標記是否當前節點梗係 int...