時間限制: 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就不是。現在給出乙個長...