雜湊和雜湊表 門票

2021-08-26 23:51:26 字數 1322 閱讀 8338

時間限制: 1 sec  記憶體限制: 128 mb

提交: 26  解決: 2

[提交] [狀態] [討論版] [命題人:admin]

題目描述

rpk要帶msh去乙個更加神秘的地方!

rpk帶著msh穿過廣場,在第1618塊磚上按下了乙個按鈕,在一面牆上隨即出現了乙個把手。rpk握住把手,開啟了一扇石質大門。他們穿過悠長而芬芳的小道,走到了一扇象徵時間的大門――「the gate of time」。

門上寫著乙個關於時間的謎題「承諾:____年」,rpk思考了一會,從容地用手指寫下1萬,這時,門開始發出閃光,msh感覺到自己的心跳都快停止了。

門開了,眼前是一座美麗的神秘花園!

正當rpk和msh準備進入的時候,突然出現了乙個看門的老大爺ql。

ql:「你們幹什麼你們,還沒買票呢!」

rpk突然想起來現金全拿去買蛋糕了,rpk很紳士的問:「能刷卡麼?我身上沒現金。」

ql:「沒錢?那你們不能進去!」

rpk(汗):「……」

ql:「等等,我這有道不會的數學題,你解了我就讓你們進去。」

(眾人:「……」)

有乙個數列,a0=1,ai+1=(a*ai+ai mod b)mod c,要求這個數列第一次出現重複的項的標號。

這點小問題當然難不倒數學bug男rpk了,僅憑心算他就得到了結果。

輸入一行3個數,分別表示a b c

輸出輸出第一次出現重複項的位置,如果答案超過2000000 輸出-1

樣例輸入

2 2 9
樣例輸出

4
提示

30%的資料a b c≤105

100%的資料 a b c≤109

試過set暴力,結果跑到90000左右的資料就t了,求教大佬之後才知道是用雜湊做,建雜湊表,選個適合的質數取模雜湊,再暴力跑即可

#include using namespace std;

typedef long long ll;

const int maxn = 2200000;

const int modd = 2181271;

int hashh[maxn];

struct z

z[maxn];

bool countt(int tmp, int tmpp)

int main()

z[i + 1].v = tmp;

z[i + 1].nextt = hashh[tmpp];

hashh[tmpp] = i + 1;

}puts("-1");

return 0;

}

問題 I 雜湊和雜湊表 門票

時間限制 1 sec 記憶體限制 128 mb 提交 43 解決 6 提交 狀態 討論版 命題人 admin 題目描述 rpk要帶msh去乙個更加神秘的地方!rpk帶著msh穿過廣場,在第1618塊磚上按下了乙個按鈕,在一面牆上隨即出現了乙個把手。rpk握住把手,開啟了一扇石質大門。他們穿過悠長而芬...

Hash和雜湊 雜湊 表

hash又稱為雜湊,是把任意長度的輸入 又叫做預對映pre image 通過雜湊演算法變成固定長度的輸出,該輸出就是雜湊值。hash演算法還有乙個特點,就是很難找到逆向規律。在同一函式下,如果兩個雜湊值是不相同的,那麼這兩個雜湊值的原始輸入也是不同的。hash演算法又被稱為雜湊演算法。雖然被稱為演算...

雜湊和雜湊表 Antisymmetry

時間限制 1 sec 記憶體限制 128 mb 提交 36 解決 12 提交 狀態 討論版 命題人 admin 題目描述 對於乙個0 1字串,如果將這個字串0和1取反後,再將整個串反過來和原串一樣,就稱作 反對稱 字串。比如00001111和010101就是反對稱的,而1001就不是。現在給出乙個長...