题意 给定 \(y,z,p\),求最小的正整数 \(x\) 满足 \(y^x\equiv z\bmod p\),保证 \(p\) 是质数. \(\texttt{Data Range:}2\leq y,z<p<^{31}\) 题解 BSGS 裸题. 这题其实我一年前就做过了,但是现在发现差点背不得 BSGS 了,所以重新写了一遍. 背 BSGS 其实只要掌握原理就好了. 首先考虑分块.令 \(x=am-b,m=\sqrt{p}\),那么就有 \[y^{am}\equiv zy^b\pmod p…
题目描述 给定一个质数P(2<=P<2312^{31}231),以及一个整数B(2<=B<P),一个整数N(2<=N<P). 现在要求你计算一个最小的L,满足BL≡N(modP). 题目分析 BSGS裸题. 偷一张网上看到的好图来说明一下BSGS算法(转侵删) Code #include<iostream> #include<cstdio> #include<cmath> #include<map> using names…
题目链接 \(BSGS\)模板题..不会点这里 #include <cstdio> #include <cmath> #include <map> using namespace std; typedef long long ll; int a, b, p; int fast_pow(int n, int k){ //n^k%p int ans = 1; while(k){ if(k & 1) ans = (ll)ans * n % p; n = (ll)n *…
就是一道模板题! 这里再强调一下 BSGS 考虑方程\(a^x = b \pmod p\) 已知a,b,p\((2 \le p\le 10^9)\),其中p为质数,求x的最小正整数解 解法: 注意到如果有解,那么一定满足\(0<x<p\) 设\(t=\lfloor \sqrt p \rfloor\) 那么一定有 \((a^t)^c=ba^d \pmod p\) 此时\(x=ct-d(0 \le d <t)\) 因为$$\frac{a{ct}}{ad} = b \pmod p$$ 那么我们…
题目 用一道板子题来复习一下\(bsgs\) \(bsgs\)用于求解形如 \[a^x\equiv b(mod\ p)\] 这样的高次不定方程 由于费马小定理的存在,我们可是直接暴力扫一遍\(p\),由于\(p-1\)次之后肯定会有循环节出现,所以\(O(p)\)时间内就可以出解 \(bsgs\)本质上就是一种分块了 设\(m=ceil(\sqrt{p})\),我们设\(x=i\times m-j\) 显然我们只需要\(i,j\in[0,m]\)就可以令\(x\)表示\([0,p]\)之间的所有…
题目链接 第一问:快速幂 第二问:扩欧解线性同余方程 第三问:\(BSGS\) 三个模板 #include <cstdio> #include <cmath> #include <map> using namespace std; typedef long long ll; int a, b, p; ll x, y, z; ll exgcd(ll a, ll b, ll &x, ll &y){ if(!b){ x = 1; y = 0; return a…
P3847 [TJOI2007]调整队形 题目背景 学校艺术节上,规定合唱队要参加比赛,各个队员的衣服颜色不能很混乱:合唱队员应排成一横排,且衣服颜色必须是左右对称的. 例如:“红蓝绿蓝红”或“红蓝绿绿蓝红”都是符合的,而“红蓝绿红”或“蓝绿蓝红”就不符合要求. 合唱队人数自然很多,仅现有的同学就可能会有3000个.老师希望将合唱队调整得符合要求,但想要调整尽量少,减少麻烦.以下任一动作认为是一次调整: 题目描述 1.在队伍左或右边加一个人(衣服颜色依要求而定): 2.在队伍中任两个人中间插入一…
传送门 感觉我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-…
传送门 一题更比三题强 1操作直接裸的快速幂 2操作用exgcd求出最小正整数解 3操作用BSGS硬上 然后没有然后了 //minamoto #include<cstdio> #include<map> #include<cmath> #include<iostream> #define ll long long using namespace std; #define getc() (p1==p2&&(p2=(p1=buf)+fread(b…
回文质数[题目链接] 始终要记得凌云壮flag(真香) 说是个搜索,其实感觉更像是一个暴力: 这个题的难度并不是特别大,因为下面的提示太明显了qwq,(而且之前培训也讲过)首先是构造回文数,构造回文数时,有以下几点优化: 优化1:对于一个回文数,若它的位数是偶数(1551,654456等),除11以外,其余所有的回文数都是11的倍数,所以在构造回文数时,只需要构造奇数位的回文数: 优化2:因为回文数第一位等于最后一位(个位),所以只有当第一位是奇数时才有可能是质数,否则一定会是2的倍数: 优化3…