国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 青河县| 博客| 宜黄县| 威宁| 湖北省| 蒙阴县| 临沧市| 班戈县| 宁都县| 子长县| 扶沟县| 大港区| 东乌| 庆阳市| 互助| 潮州市| 长顺县| 万盛区| 宁德市| 牙克石市| 汉中市| 东台市| 延川县| 济源市| 通海县| 长岭县| 黄冈市| 巫山县| 揭西县| 攀枝花市| 宁蒗| 南溪县| 敦煌市| 石门县| 茌平县| 科尔| 喜德县| 桐乡市| 海阳市| 扎囊县| 搜索|