首页 > 其他分享 >2023.1.16[模板]BSGS/exBSGS

2023.1.16[模板]BSGS/exBSGS

时间:2023-01-16 09:56:01浏览次数:39  
标签:map int exBSGS sqrt 2023.1 equiv BSGS

2023.1.16 [模板]BSGS/exBSGS

全称Boy Step Girl Step

给定一个质数 p,以及一个整数 a,一个整数 b,现在要求你计算一个最小的非负整数 l,

满足\(a^x \equiv b (mod p)\)

算法流程

设t = \(\lceil \sqrt p \rceil\) ,x = i * t - m (0\(\leq\)i\(\leq\)t , 0\(\leq\)m\(\lt\)t - 1)

$a^{i * t - b} \equiv b $(mod p)

\(({a^t})^i \equiv b * a^m\) (mod p)

我们建立一个map,将b * \(a^0\) ~ b * \(a^{t - 1}\) 全部推进去,将值与指数建立映射关系,然后再枚举i,递推算出左式,判断map中是否有值,如果有值则返回答案ans = i * t - map[val]

时间复杂度O(\(\sqrt p\))

inline int BSGS(int a,int b,int p)//a ^ x = b (% p)
{
	map <int,int> q;
	int t = sqrt(p);
	for(int i = 0;i <= t - 1;i++)
		q[(1ll * ksm(a,i,p) * b % p)] = i;
	int c = ksm(a,t,p);
	for(int i = 1;i <= t;i++)
	{
		int now = ksm(c,i,p);
		if(q.find(now) != q.end())
		{
			int x = q[now];
			return i * t - x;
		}
	}
	return -1;
}

标签:map,int,exBSGS,sqrt,2023.1,equiv,BSGS
From: https://www.cnblogs.com/fanghaoyu801212/p/17054732.html

相关文章

  • BSGS&exBSGS
    BSGS即baby(boy)stepgiant(girl)step算法,用于处理\(a^x\equivb(mod\p)\),给\(a,b,p(a,p互质)\)求所有的\(x\)的问题中本质上有一点点像二分搜索的意味在里面算法......
  • 2023.1.15训练日志
    P3957跳房子简单单调队列优化DP,赋inf时出现重大失误没有发现,浪费了比较多时间P2168荷马史诗(最优解)哈夫曼树板子题,一开始就想到补0,结果因为忘记了qsort怎么用......
  • 大步小步算法(BSGS)
    BSGS是解决\(a^{l}\equivb(\modp)\)已知\(a\)、\(b\)、\(p\)的情况下求最小的非负整数\(l\)的算法。设$m=\left\lceil\sqrt{p}\right\rceil$,\(l=x\timesm-y(0\l......
  • 力扣每日一题2023.1.12---1807. 替换字符串中的括号内容
    给你一个字符串 s ,它包含一些括号对,每个括号中包含一个非空 的键。   比方说,字符串 "(name)is(age)yearsold" 中,有 两个 括号对,分别包含键 "name"和 "age"......
  • 算法--2023.1.15
    1.力扣198--打家劫舍classSolution{publicintrob(int[]nums){intn=nums.length;int[]dp=newint[n+1];dp[0]=0;......
  • 2023.1.15;周日复盘
    复盘目的:复习,简洁,高效想法做事情要考虑目的与后果这样提醒自己更专注当下的原本的事情,不被其他事情被打扰,不忘初心;做好做这件事情可能出现的所有结果的心理准备。To......
  • BSGS
    BSGS(大步小步法)BSGS可以在\(O(\sqrt{p})\)的时间内求解满足\(a^x\equivb\pmodp\)的\(x\),其中\(a\perpp,x>0\)。实现原理:尝试进行和整除分块异曲同工的......
  • XMU 2023.1.14 题解汇总
    A、CF1779A原题B、https://www.cnblogs.com/wondering-world/p/17038860.htmlC、https://www.luogu.com.cn/problem/solution/P4305D、快速幂模板点击查看代码#incl......
  • 算法--2023.1.14
    1.力扣435--无重叠区间classSolution{publicinteraseOverlapIntervals(int[][]intervals){Arrays.sort(intervals,(o1,o2)->(o1[1]-o2[1]));......
  • 2023.1.14
    P5501[LnOI2019]来者不拒,去者不追一道二次离线莫队的模板题,第二次离线后用分块就可以做到\(O(1)\)询问。P4207[NOI2005]月下柠檬树建系之后我们只考虑一半的面积,......