Hoj 1867 經理的煩惱(樹狀陣列)

2021-06-30 16:57:13 字數 1784 閱讀 9747

jerry是一家公司銷售部門的經理。這家公司有很多連鎖店,編號為1,2,3,... jerry每天必須關注每家連鎖店的商品數量及其變化,一項很乏味的工作。在連鎖店比較少的時候,jerry喜歡計算編號在[i,j]區間內的連鎖店中商品數量為素數的有多少家,但是現在連鎖店的數量急劇增長,計算量很大,jerry很難得出結果。

輸入格式

題目有多組輸入。每組輸入第一行有三個整數:c 連鎖店的數量 n 指令的條數 m 每家連鎖店初始的商品數量

接下來有n行,每行有一條指令。指令的格式為:

0 x y 連鎖店x的商品數量變化值為y,y > 0商品數量增加, y < 0減少

1 i j 輸出編號在[i,j]區間內的連鎖店中商品數量為素數的有多少家

1 <= i, x, j < 1000000 連鎖店中的商品數量a滿足 0 <= a < 10000000,c = n = m = 0標誌輸入結束

輸出格式

對於每組輸入,輸出它的序號。對於一組輸入中的1指令輸出要求的整數。每組輸出後列印一行空行。

樣例輸入

100000 4 4

0 1 1

1 4 10

0 11 3

1 1 11

20 3 0

1 1 20

0 3 3

1 1 20

0 0 0

樣例輸出

case #1:02

case #2:

01

#include#include#include#include#include#include#include#include#include#include#define l(x) (x<<1)

#define r(x) (x<<1|1)

#define mid(x,y) ((x+y)>>1)

#define eps 1e-8

typedef long long ll;

#define fre(i,a,b) for(i = a; i = a;i--)

#define mem(t, v) memset ((t) , v, sizeof(t))

#define ssf(n) scanf("%s", n)

#define sf(n) scanf("%d", &n)

#define sff(a,b) scanf("%d %d", &a, &b)

#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)

#define pf printf

#define bug pf("hi\n")

using namespace std;

#define inf 0x3f3f3f3f

#define n 1000005

ll a[n],c[n];

int n,m;

int judge(int x)

inline int lowbit(int x)

void update(int x,int va)

}int sum(int x)

return s;

}int main()

int op,le,ri;

while(m--)

else

}printf("\n");

}return 0;

}

HOJ 1867 經理的煩惱(樹狀陣列)

問題描述 jerry是一家公司銷售部門的經理。這家公司有很多連鎖店,編號為1,2,3,jerry每天必須關注每家連鎖店的商品數量及其變化,一項很乏味的工作。在連鎖店比較少的時候,jerry喜歡計算編號在 i,j 區間內的連鎖店中商品數量為素數的有多少家,但是現在連鎖店的數量急劇增長,計算量很大,je...

HOJ 1867 經理的煩惱 樹狀陣列

題目 給出n個商店,每個商店有初始化的商品數量,現在有兩種指令 0 x y 連鎖店x的商品數量變化值為y,y 0商品數量增加,y 0減少 1 i j 輸出編號在 i,j 區間內的連鎖店中商品數量為素數的有多少家 當指令為1時,求給出 i到j的商品數量為素數的商店的數目 分析 用樹狀陣列做,只不過在u...

Hoj 1867 經理的煩惱(樹狀陣列)

jerry是一家公司銷售部門的經理。這家公司有很多連鎖店,編號為1,2,3,jerry每天必須關注每家連鎖店的商品數量及其變化,一項很乏味的工作。在連鎖店比較少的時候,jerry喜歡計算編號在 i,j 區間內的連鎖店中商品數量為素數的有多少家,但是現在連鎖店的數量急劇增長,計算量很大,jerry很難...