BSGS与二次剩余】的更多相关文章

[BZOJ5104]Fib数列(BSGS,二次剩余) 题面 BZOJ 题解 首先求出斐波那契数列的通项: 令\(A=\frac{1+\sqrt 5}{2},B=\frac{1-\sqrt 5}{2}\),那么\(f[n]=\frac{1}{\sqrt 5}(A^n-B^n)\). 然后有\(A=-\frac{1}{B}\),所以有:\(f[n]=\frac{1}{\sqrt 5}((-\frac{1}{B})^n-B^n)\). 令\(x=B^n\),这里需要考虑一下\(n\)的奇偶性: 如果\…
BSGS $Big\ Step\ Giant\ Step$,大步小步法,一种在$O(\sqrt{p})$内求解方程$a^x\equiv b (mod\ p)$的算法. 先考虑$p$为质数的情况. 令$x=im-j$,$m=\lceil \sqrt{p} \rceil$(注意是上取整,要保证大步比小步大),则$a^{im-j}\equiv b(mod\ p)$. 移项,有$(a^m)^i\equiv ba^j(mod\ p)$. 首先$0-i$枚举$j$,将$ba^j$存入哈希表.在$1-m$枚举…
5在1e9+9下有二次剩余,那么fib的通项公式就有用了. 已知Fn,求n.注意到[(1+√5)/2]·[(1-√5)/2]=-1,于是换元,设t=[(1+√5)/2]n,原式变为√5·Fn=t-(-1)n·t-1.同乘t并移项,可得t2-√5·Fn·t-(-1)n=0.讨论n的奇偶性,BSGS求二次剩余大力解方程即可.用BSGS求二次剩余是非常简单的,求出其以原根为底的离散对数即可. 注意二次剩余有正负两解,但似乎代进去正根(即√gk=gk/2)就行了,不太明白.以及题目要求最小解,BSGS的…
若m=0, 就是求n^2n ≡ x mod p (x--) 因为一定优解,所以x一定是p的二次剩余 令g为p的1个原根,且g^k ≡ x mod p 则k是偶数,证明k是偶数: 假设 g1^k1 ≡ x mod p g2^k2 ≡ x mod p,k2是偶数 g1^k3 ≡ g2 mod p 那么 g1^k3k2 ≡ x ≡ g1^k1 mod p 由欧拉定理可得,k3k2 ≡ k1 mod p-1 ∴ k1是偶数 所以对于任意g,k是偶数 所以等价于求 n^n ≡ g^(k/2) mod p…
题面 传送门 前置芝士 \(bsgs\),\(Cipolla\) 题解 因为题目保证\(p\bmod 10\)是完全平方数,也就是说\(p\bmod 5\)等于\(1\)或\(-1\),即\(5\)是模\(p\)的二次剩余(法老讲过,我忘了为啥了--) 然后我们需要用\(Cipolla\)求出\(c=\sqrt{5}\),并记\(p={1+c\over 2}\) 用斐波那契数列的通项公式代入,方程可以变为 \[{1\over c}\left(p^n-(-1)^n{1\over p^n}\righ…
前置知识 扩展欧几里得,快速幂 都是很基础的东西 扩展欧几里得 说实话这个东西我学了好几遍都没有懂,最近终于搞明白,可以考场现推了,故放到这里来加深印象 翡蜀定理 方程$ax+by=gcd(a,b)$一定有整数解 证明: 因为$gcd(a,b)=gcd(b,a$ $mod$ $b)$ 所以假设我们已经求出来了$bx+(a$ $mod$ $b)y=gcd(b,a$ $mod$ $b)$的一组整数解$(p,q)$ 因为$a$ $mod$ $b=a-(\lfloor \frac{a}{b} \rflo…
斐波那契数列的通项: \[\frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})-(\frac{1-\sqrt{5}}{2}))\] 设T=\(\sqrt{5}*N\),\(y=\frac{\sqrt{5}+1}{2}\) 原式可化为\(y^n-(-\frac{1}{y}^n) \equiv T(mod\ p)\) 我们设\(t=y^n\) 原式可继续化为\(t-T*t \equiv (-1)^n(mod\ p)\) 然后我们对n进行奇偶讨论. 即分别求出\(t-T*…
题意 定义 $F_n$ 为 $$F_n = \left\{\begin{matrix}0, n=0\\ 1, n=1 \\F_{n-1} + F_{n-2}, n > 1\end{matrix}\right.$$ 现给你一个素数 $p$ 和一个非负整数 $C$,你需要最小的非负整数 $n$,使得 $F_n \equiv C (mod \ p)$. 分析 因为题目保证 $p \ mod \ 10$ 是一个完全平方数,也就是说 $p \ mod \ 5$ 等于1或-1,即5是模$p$ 的二次剩余(据…
传送门 发现只有通项公式可以解决考虑通项公式 \(F_n = \frac{1}{\sqrt{5}}((\frac{1+\sqrt{5}}{2})^n - (\frac{1-\sqrt{5}}{2})^n) = a\) 注意到根据二次互反律,在\(\mod 10^9+9\)意义下\(5\)存在二次剩余,所以先把\(\sqrt{5}\)对应的值算出来(实际上是\(383001016\)). 那么原式变为了\((\frac{1+\sqrt{5}}{2})^n - (\frac{1-\sqrt{5}}{…
快AFO了才第一次写二次剩余的题…… 显然应该将Fn写成通项公式(具体是什么写起来不方便而且大家也都知道),设t=((1+√5)/2)n,T=√5N,然后可以得到t-(-1)t/t=√5N,两边同时乘t,移项,得到t2-√5Nt-(-1)n=0.分别讨论n是奇数或偶数的情况,通过求根公式求t,写个二次剩余即可. #include<bits/stdc++.h> using namespace std; ,inv2=5e8+,mod=1e9+,inf=0x7fffffff; int n,w,ans…