HOJ 1876經理的煩惱

2021-07-11 08:47:05 字數 2021 閱讀 1492

哎~這道題re了很多次。後來找到原因竟然是 #define maxn 1000010+5   的錯誤,因為這裡的c++提交不支援 巨集定義有+的運算改為   

#define maxn 1000010就過了

解題思路:樹狀陣列c[i]存的是a[i-lowbit[i]+1]~a[i]中的素數的個數。之前進行一下篩素數就行了。

my tags

(edit)

source: hcpc 2005 spring

time limit: 2 sec

memory limit: 32 m

submitted: 2841,accepted: 652

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

#include

#include

#include

#define maxn 1000010

#define ull unsigned long long

#define ll long long

#define rep(i,n) for(i=1;i<=n;i++)

#define rep(i,n) for(i=0;ib;

}int a[maxn];

int c[maxn];

int n,c,m;

bool prime[maxn*10];

void setprime()}}

int lowbit(int i)

void add(int i,int d)

}int sum(int i)

return ret;

}int t;

int k,x,y;

int main()

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

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

else if(prime[a[x]]&&!prime[a[x]-y])

add(x,1);

}else if(k==1)

}printf("\n");

}return 0;

}

HOJ1867 經理的煩惱

my tags edit source hcpc 2005 spring time limit 2 sec memory limit 32 m submitted 2946,accepted 672 jerry是一家公司銷售部門的經理。這家公司有很多連鎖店,編號為1,2,3,jerry每天必須關注每...

hoj 1867 經理的煩惱

my tags edit sourcehcpc 2005 spring time limit memory limit submittedaccepted 輸入格式 題目有多組輸入。每組輸入第一行有三個整數 c 連鎖店的數量 n 指令的條數 m 每家連鎖店初始的商品數量 接下來有n行,每行有一條指令...

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

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