雜湊衝突 洛谷P3396(簡單暴力分塊)

2021-09-26 19:01:11 字數 1475 閱讀 1693

眾所周知,模數的hash會產生衝突。例如,如果模的數p=7,那麼411便衝突了。

b君對hash衝突很感興趣。他會給出乙個正整數序列value

自然,b君會把這些資料存進hash池。第value[k]會被存進(k%p)這個池。這樣就能造成很多衝突。

b君會給定許多個px,詢問在模p時,x這個池內**數的總和**。

另外,b君會隨時更改value[k]。每次更改立即生效。

保證1<=p第一行,兩個正整數n,m,其中n代表序列長度,m代表b君的操作次數。

第一行,n個正整數,代表初始序列。

接下來m行,首先是乙個字元cmd,然後是兩個整數x,y

對於每個詢問輸出乙個正整數,進行回答。

輸入 #1複製

10 5

1 2 3 4 5 6 7 8 9 10

a 2 1

c 1 20

a 3 1

c 5 1

a 5 0

輸出 #1複製

25

4111

樣例解釋

a 2 1的答案是1+3+5+7+9=25.

a 3 1的答案是20+4+7+10=41.

a 5 0的答案是1+10=11.

資料規模

對於10%的資料,有n<=1000,m<=1000.

對於60%的資料,有n<=100000.m<=100000.

對於100%的資料,有n<=150000,m<=150000.

保證所有資料合法,且1<=value[i]<=1000.

。。。。。資料有點弱,直接暴力只會t乙個點。那麼先給個暴力的**:

#include using namespace std;

const int mac=1e6+10;

int a[mac];

int main()

}else

} return 0;

}

洛谷P3396 雜湊衝突

分塊還真是應用廣泛啊.題意 求 解 以n0.5為界。當p小於n0.5的時候,直接用p 大小的陣列儲存答案。預處理n1.5,修改n0.5。當p大於n0.5的時候,直接按照定義計算,複雜度n0.5。所以總複雜度n1.5,實在是巧妙不堪啊.什麼sb詞彙 1 include 2 include 3 incl...

洛谷P3396雜湊衝突

題意 給出長度為n的序列a1 a2 a3 an,進行m次操作 a 操作輸入x y,求序列中下標i x y的所有數的和 c 操作輸入x y,將ax的值改為y。題解 題解真的非常神奇 思路是這樣的 首先暴力的想法 for int i y i n i x ans a i 純暴力這樣是o n 2 的。之後有...

洛谷 P3396 雜湊衝突 分塊

題目鏈結 給你個數列,編號為1 n 1 n 給出兩種操作 我們先從最為暴力的思路出發 我們可以把要求的東西簡寫成su m x y sum x y 代表的含義是模 x x 餘y role presentation style position relative y y的編號對應的數字之和,下面我們需要...