大步小步走算法处理这样的问题: A^x = B (mod C) 求满足条件的最小的x(可能无解) 其中,A/B/C都可以是很大的数(long long以内) 先分类考虑一下: 当(A,C)==1 即A.C互质的时候, 叫他BSGS: A一定存在mod C意义下的逆元,所以,A^k也存在. 注意到,A^(fai(c)) = 1 (mod c)  ......................(fai(c)表示c的欧拉函数值) 所以,A^(fai(c)+1) = A (mod C) 就重新回去了. 所…
bsgs algorithm ax≡b(mod n) 大步小步算法,这个算法有一定的局限性,只有当gcd(a,m)=1时才可以用 原理 此处讨论n为素数的时候. ax≡b(mod n)(n为素数) 由费马小定理可知,只需要验证0,1,2...n-1是不是解即可,因为an-1 = 1mod(n) 算法过程 1.首先求出a0,a1,a2,...,am-1 模上n的值是否为b,存储在e[i]中,求出am的逆a-m 2.下面考虑am,am+1,...,a2m-1 模上n的值是否为b 此时不用一一检查,如…
基础BSGS 用处是什么呢w 大步小步发(Baby-Step-Giant-Step,简称BSGS),可以用来高效求解形如\(A^x≡B(mod C)\)(C为素数)的同余方程. 常用于求解离散对数问题.形式化地说,该算法可以在\(O(\sqrt{n})\)用于求解. 接下来是算法过程 首先我们讨论的都是(A,C) = 1(由于C是素数,所以等价于A不是C倍数)的情况,如果(A,C) > 1(A是C倍数),很容易特判掉. 先引入一个结论: 如果(A,C) = 1,那么对于\(x \in N\),有…
大步小步算法用于解决:已知A, B, C,求X使得 A^x = B (mod C) 成立. 我们令x = im - j | m = ceil(sqrt(C)), i = [1, m], j = [0, m] 那么原式就变成了: A^(im) = A^j * B 我们先枚举j,把A^j * B加入哈希表 然后枚举i,在表中查照A^(i*m),如果找到了,那么就找到了一个解. 算法的复杂度为O(n^0.5) 代码: #include <bits/stdc++.h> #define ll long…
离散对数及其拓展 离散对数是在群Zp∗Z_{p}^{*}Zp∗​而言的,其中ppp是素数.即在在群Zp∗Z_{p}^{*}Zp∗​内,aaa是生成元,求关于xxx的方程ax=ba^x=bax=b的解,并将解记作x=logabx=log_{a}{b}x=loga​b,离散对数指的就是这个logablog_{a}{b}loga​b.由于群Zp∗Z_{p}^{*}Zp∗​的阶是p−1p-1p−1,且是循环群,因为生成元的阶是p−1p-1p−1,因而模p−1p-1p−1相等的指数可以看做一样的数,x=l…
今天学习了jQ,jQ对js的帮助很大,菜鸟教程上也有属性.可以查看 js 和 jquery主要的区别 在 dom    想用jquery  必须先引入(顺序问题)        先css 再js:      先框架css再自己css 先jquery 再框架 在自己 鼠标移动到div和修改ipt中弹窗 <!doctype html> <html> <head> <meta charset="utf-8"> <title>鼠标移动…
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4128 大水题一道 使用大步小步算法,把数字的运算换成矩阵的运算就好了 矩阵求逆?这么基础的线代算法我也不想多说,还是自行百度吧 需要注意的是矩阵没有交换律,所以在计算$B\cdot A^{-m}$的时候不要把顺序搞混 代码: #include <cstring> #include <cstdio> #include <algorithm> #include <…
传送门 题目描述 已知数a,p,b,求满足a^x≡b(mod p)的最小自然数x. 输入输出格式 输入格式: 每个测试文件中最多包含100组测试数据. 每组数据中,每行包含3个正整数a,p,b. 当a=p=b=0时,表示测试数据读入完全. 输出格式: 对于每组数据,输出一行. 如果无解,输出"No Solution"(不含引号),否则输出最小自然数解. 输入输出样例 输入样例#1: 5 58 33 2 4 3 0 0 0 输出样例#1: 9 No Solution 说明 100%的数据…
目录 一.初识组件 (一)概念 (二)特点 二.组件的分类 (一)根组件 (二)局部组件 (三)全局组件 二.数据组件化 三.组件的传参 (一)父传子 (二)子传父 四.JS补充 (一)与html命名转换 (一) JS中的循环遍历 (1) for in (2)for of (3) each (二) 加减运算和数据类型转换 (三) 可变长参数和 四.css补充 一.初识组件 (一)概念 组件就是html.css和js的集合体,通过组件可以再次复用该集合体 组件分为根组件.局部组件.全局组件 (二)…
#!/usr/bin/env python # -*- coding:utf-8 -*- ''' Author: Minion-Xu 小堆序实现从大到小排序,大堆序实现从小到大排序 重点的地方:小堆序堆顶的元素一定是堆里最小的,大堆序堆顶的元素一定是堆里最大的 小堆序:满足任何从上到下的线路依次增长 大堆序:满足任何从上到下的线路依次减小 效率:时间效率O(nlogn) 空间效率O(1) ''' #堆排序:因为队列里的元素是不满足小堆序的,所以首先要构建小堆序 #构建完小堆序后,从堆顶弹出元素(…