传送门 感觉我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-…
洛咕 P3306 [SDOI2013]随机数生成器 大力推式子??? \(X_{i}=\underbrace{a(a(\cdots(a(a}_{i-1个a}X_1+b)))\cdots)\) \(=b+ba+ba^2+\cdots+ba^{i-3}+ba^{i-2}+X_1a^{i-1}\equiv t(\text{mod }p)\) \(b\frac{a^{i-1}-1}{a-1}+a^{i-1}x_1\equiv t(\text{mod }p)\) 拆分一波,提出\(a^{i-1}\) \(…
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…
洛谷 bzoj 特判+多测真恶心 . \(0\le a\le P−1,0\le b\le P−1,2\le P\le 10^9\) Sample Input 3 7 1 1 3 3 7 2 2 2 0 7 2 2 2 1 Sample Output 1 3 -1 推一下前几项就能知道: \[x_n\equiv t\equiv a^{n-1}x_1+b\sum_{i=0}^{n-2}a^i\pmod p \] \[t\equiv a^{n-1}x_1+b\frac{a^{n-1}-1}{a-1}\…
题意 题目链接 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…
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$,查表,如果…
题目描述 给出递推公式 $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…
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<…