CQOI2018 破解D H協議

2022-03-02 10:18:04 字數 918 閱讀 5976

題目鏈結

已知$g^a=a$和$g^b=b$,求$g^\bmod p$,可以先求$a$,再得$b^a$。

也即,在$g^a\equiv a\pmod p$中求$a$。顯然$bsgs$。

$g$是原根,這就意味著$g^t\bmod p\;(0\leq t

如何加速?考慮一種拆分方法使得可以預處理一部分,即設$t=i\times m-j$,移項,得到$g^\equiv a\times g^j\pmod p$。

預處理:算出所有$g^$插入到桶裡(使用$stl-map$)。使用容器之後要注意常數。

可以發現,當$m=\lceil\sqrt\,\rceil$時有最優複雜度。

#include#include

#include

#include

#include

#include

#include

#include

#include

#define il inline

#define rg register

#define _1 first

#define _2 second

using

namespace

std;

typedef

long

long

ll; ll g,p,m;

il ll qpow(ll a,ll b)

return

ret;

}

maps;il

void

init()

}il ll calc(ll t)

return0;

}int

main()

return0;

}

view code

高階列舉方法get√

CQOI 2018 破解D H協議

傳送門 題目描述 diffie hellman 金鑰交換協議是一種簡單有效的金鑰交換方法。它可以讓通訊雙方在沒有事先約定金鑰 密碼 的情況下,通過不安全的通道 可能被竊聽 建立乙個安全的金鑰 k kk,用於加密之後的通訊內容。假定通訊雙方名為 alice 和 bob,協議的工作過程描述如下 其中 m...

BSGS CQOI2018 破解D H協議

bsgs演算法,又稱大小步演算法 某大神稱拔山蓋世演算法 主要用來解決 a x b mod c c是質數 都是整數,已知a b c求x。具體步驟如下 先把x i m j,其中m ceil sqrt c ceil是向上取整 這樣原式就變為a i m j b mod c 再變為a j b a m i m...

CQOI2018 社交網路

當今社會,在社交網路上看朋友的訊息已經成為許多人生活的一部分。通常,乙個使用者在社交網路上發布一條訊息 例如微博 狀態 tweet等 後,他的好友們也可以看見這條訊息,並可能 的訊息還可以繼續被人轉 發,進而擴散到整個社交網路中。在乙個實驗性的小規模社交網路中我們發現,有時一條熱門訊息最終會被所有人...