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<…
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<=…
题目要求的是: \[ ...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^…
#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(…
3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1442  Solved: 552 Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数. 接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 Output 共T行,每行一个整数表示他最早读到第t页是哪一天.如果他永远不会读到第t页,输出-1. Sa…
[BZOJ3122][Sdoi2013]随机数生成器 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…
题意 题目链接 Sol 这题也比较休闲. 直接把\(X_{i+1} = (aX_i + b) \pmod P\)展开,推到最后会得到这么个玩意儿 \[ a^{i-1} (x_1 + \frac{b}{a-1}) - \frac{b}{a-1} \equiv T \pmod P \] 然后再合并一下就可以大力BSGS了. 有些细节需要特判一下 #include<bits/stdc++.h> #define Pair pair<int, int> #define MP(x, y) ma…
题目描述 给出递推公式 $x_{i+1}=(ax_i+b)\mod p$ 中的 $p$.$a$.$b$.$x_1$ ,其中 $p$ 是质数.输入 $t$ ,求最小的 $n$ ,使得 $x_n=t$ .若不存在则输出-1. 输入 输入含有多组数据,第一行一个正整数 T ,表示这个测试点内的数据组数.  接下来 T 行,每行有五个整数 p,a,b,X1,t ,表示一组数据.保证 X1 和 t 都是合法的页码. 注意: p 一定为质数 输出 共T行,每行一个整数表示他最早读到第t页是哪一天.如果他永远…
题目大意 给定递推序列: F[i] = a*F[i-1] + b (mod c) 求一个最小的i使得F[i] == t 题解 我们首先要化简这个数列,作为一个学渣,我查阅了一些资料: http://d.g.wanfangdata.com.cn/Periodical_cczl200924107.aspx http://wenku.baidu.com/view/7162471b650e52ea5518982d.html 推一下,就有: \[ a_{n+1}=ba_n+c\\ a_{n+1}+\fra…