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

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

【bzoj3122】【SDOI2013】 隨機數(shù)生成器

2019-11-08 03:04:56
字體:
供稿:網(wǎng)友

公式其實挺容易推的,看見zyf推的好復(fù)雜= =,其實直接代秦九昭算法,然后用等比數(shù)列求和就能推出來,推到最后應(yīng)該是 Xn+b/a?1≡an?1(X1+b/a?1)(modp) 然后會發(fā)現(xiàn)除了a^n-1其他都是常數(shù),注意要求逆元 然后直接BSGS就好了,求逆元可以用exgcd也可以用a^(p-2)求. 代碼找不到了/(ㄒoㄒ)/~~,我貼zyf神犇的好了畢竟模板都是照著她寫的.

#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<map>using namespace std;#define LL long longLL T,P,a,b,x1,t;LL ny1,ny2,val1,val2,val3;LL ans;map <LL,LL> hash;inline LL fast_pow(LL a,LL p){ LL ans=1; for (;p;p>>=1,a=a*a%P) if (p&1) ans=ans*a%P; return ans;}inline LL BSGS(LL a,LL b){ LL m=ceil(sqrt(P)); LL a_m=fast_pow(a,m); hash.clear(); LL mul=1; LL val=mul*b%P; hash[val]=0; for (LL j=1;j<=m;++j){ mul=mul*a%P; val=mul*b%P; hash[val]=j; } mul=1; for (LL i=1;i<=m;++i){ mul=mul*a_m%P; if (hash[mul]){ LL x=i*m-hash[mul]; return x+1; } } return -1;}int main(){ scanf("%lld",&T); while (T--){ scanf("%lld%lld%lld%lld%lld",&P,&a,&b,&x1,&t); //一坨特判 if (t==x1){
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 怀化市| 东光县| 肃南| 岳西县| 遂昌县| 迁西县| 北安市| 阿荣旗| 青岛市| 垣曲县| 闸北区| 大余县| 桦川县| 郸城县| 德惠市| 屏东县| 汝州市| 广东省| 个旧市| 黑龙江省| 乌海市| 祁门县| 喀什市| 焉耆| 剑河县| 多伦县| 六枝特区| 浦城县| 黄陵县| 永宁县| 红安县| 茶陵县| 曲靖市| 永寿县| 东方市| 兴化市| 横峰县| 龙江县| 临湘市| 谢通门县| 东乌|