BZOJ3122 随机数生成器——BSGS】的更多相关文章

题意 链接 给定 $p,\ a,\ b, \ x_1$,现有一数列 $$x_{i+1} \equiv (ax_i + b) \ mod \ p$$ 求最小的 $i$ 满足 $x_i = t$ 分析 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; //ax + by = d,且|x|+|y|最小,其中d=gcd(a,b) //即使a, b在int范围内,x和y也有可能超过int范围 void exgcd(…
[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…
3122: [Sdoi2013]随机数生成器 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1362  Solved: 531[Submit][Status][Discuss] Description Input 输入含有多组数据,第一行一个正整数T,表示这个测试点内的数据组数.   接下来T行,每行有五个整数p,a,b,X1,t,表示一组数据.保证X1和t都是合法的页码. 注意:P一定为质数 Output 共T行,每行一个整数表示他最早读到第t…
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…
题意 题目链接 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…
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<=b…
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<…