国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

[BZOJ3239][BSGS]Discrete Logging

2019-11-10 23:48:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

題意


Ax≡B(mod P)的最小非負(fù)整數(shù)解


BSGS裸題

自己推一下:

x=im+jm=?q√?

AimAj≡B(mod P)

Aj≡B?ine(Aim)(mod P)

已知ine(1)=1

由費(fèi)馬小定理得ine(Aim)=ine(A(i?1)m)?Ap?1?m mod P

那么ine就可以處理出來(lái)了。

A0...mhash存一下

再求B?ine(A(1...m)m)在hash表中查找。

#include <cstdio>#include <map>#include <iostream>#include <cmath>using namespace std;typedef long long ll;int p,b,n;map<int,int> Mp;inline int powf(ll x,int y,int p){ int k=1; x%=p; while(y){ if(y&1) k=k*x%p; x=x*x%p; y>>=1; } return k;}inline void solve(int y,int z,int p){ y%=p; if(!y&&!z) {puts("1");return;} if(!y) {puts("no solution");return;} ll t=ceil(sqrt(p)),k=1,ine=1; Mp.clear(); Mp[1]=0; for(int i=1;i<t;i++){ k=1ll*k*y%p; if(Mp.count(k)) continue; Mp[k]=i; } int tmp=powf(y,p-t-1,p); for(int i=0;i<t;i++){ if(Mp.count(z*ine%p)) {
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 麻阳| 怀来县| 津南区| 东源县| 新兴县| 成安县| 寿光市| 沁源县| 偏关县| 通河县| 永州市| 湟源县| 灵寿县| 金堂县| 奎屯市| 潜山县| 威信县| 衡东县| 惠安县| 青海省| 丹巴县| 特克斯县| 蒙阴县| 民勤县| 永德县| 陵川县| 左贡县| 轮台县| 江安县| 句容市| 东山县| 万山特区| 邓州市| 杭锦后旗| 晋中市| 双桥区| 革吉县| 神木县| 延边| 漳平市| 克拉玛依市|