题目要求的是: \[ ...a(a(a(ax+b)+b)+b)+b...=a^nx+a^{n-1}b+a^{n-2}b+...+b\equiv t(mod\ p) \] 后面这一大坨看着不舒服,所以考虑把它化掉,这里有两种做法: 做法一:两边同乘a-1 \[ (a^{n-1}x)(a-1)+b(a^{n-1}-1)\equiv t(a-1)(mod\ p) \] \[ a^nx-a^{n-1}x+ba^{n-1}-b \equiv at-t(mod\ p) \] \[ axa^{n-1}-xa^…
Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数.    接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 Output 共T行,每行一个整数表示他最早读到第t页是哪一天.如果他永远不会读到第t页,输出-1. Sample Input 3 7 1 1 3 3 7 2 2 2 0 7 2 2 2 1 Sample Output 1 3 -1 HINT 0<=a<=P-1,0<=…
BSGS算法 转自:http://blog.csdn.net/clove_unique 问题 给定a,b,p,求最小的非负整数x,满足$a^x≡b(mod \ p)$ 题解 这就是经典的BSGS算法,方法如下: 令$x=im−j$,$m=⌈\sqrt{p}⌉$,则$a^{im−j}≡b(mod \ p)$ 移项,得$(a^m)^i≡ba^j(mod \ p) $首先,从$0−m$枚举$j$,将得到的$ba^j$的值存入hash表: 然后,从$1−m$枚举$i$,计算$(a^m)^i$,查表,如果…
Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 Output 共T行,每行一个整数表示他最早读到第t页是哪一天.如果他永远不会读到第t页,输出-1. Sample Input 3 7 1 1 3 3 7 2 2 2 0 7 2 2 2 1 Sample Output 1 3 -1 HINT 0<=a<=P-1,0<=b<=P-1,2<…
#include<cstdio> #include<iostream> #include<map> #include<cmath> #define ll long long using namespace std; ll T,p,a,b,c,x1,t; map<ll,ll> mp; ll exgcd(ll b,ll p,ll &x,ll &y) { if(!p) { x=; y=; return b; } ll t1=exgcd(…
[bzoj3122]: [Sdoi2013]随机数生成器 当a>=2 化简得 然后 BSGS 求解 其他的特判 : 当 x=t  n=1 当 a=1  当 a=0 判断b==t /* http://www.cnblogs.com/karl07/ */ #include <cstdlib> #include <cstdio> #include <cstring> #include <cmath> #include <map> #include…
题目链接 怎么这么多随机数生成器 题意见原题. 很容易想到\(BSGS\)算法,但是递推式是\(X_{i+1}=(aX_i+b)\mod p\),这显然不是一个等比数列. 但是可以用矩阵乘法来求出第\(i\)项,所以好像可以用\(BSGS\)套矩阵乘法?但是总要把那个常数项除过来吧,矩阵除法是什么鬼? 无奈只好放弃去看题解. 看完之后,哎,我太蒻了. \[X_{i+1}=(aX_i+b)\mod p\] \[X_{i+1}=a(X_i+\frac{b}{a})\mod p\] \[X_{i+1}…
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<map> using namespace std; typedef long long ll; struct Thash{ ; ; ],next[MAXN],h[MAXN],val[MAXN]; inline ;memset(head,,sizeof head);} inline void…
传送门 感觉我BSGS都白学了……数学渣渣好像没有一道数学题能自己想出来…… 要求$X_{i+1}=aX_i+b\ (mod \ \ p)$ 左右同时加上$\frac{b}{a-1}$,把它变成等比数列$$X_{i+1}+\frac{b}{a-1}=a(X_i+\frac{b}{a-1}) \ (mod\ p)$$ 然后根据等比数列递推公式$$X_n+\frac{b}{a-1}=a^{n-1}(X_1+\frac{b}{a-1}) \ (mod\ p)$$ 那么我们要求$n$,已知$$a^{n-…
题目 输入格式 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 输出格式 共T行,每行一个整数表示他最早读到第t页是哪一天.如果他永远不会读到第t页,输出-1. 输入样例 3 7 1 1 3 3 7 2 2 2 0 7 2 2 2 1 输出样例 1 3 -1 提示 0<=a<=P-1,0<=b<=P-1,2<=P<=10^9 题解 运用数列…