BSGS离散对数(Baby Step Giant Step) 题目: 给定$x,y,p,$求最小的自然数$k$满足$x^k=y(\mod p)$$p\le2^{31}$(满足一定有答案) 题解: 因为$x^{p 2}=1\pmod{p}$ 那么答案最大不会超过$p 2$,因为大于的话直接减掉$p 2 ...
分类:
其他好文 时间:
2017-12-29 21:44:59
阅读次数:
182
一、ECDSA概述 椭圆曲线数字签名算法(ECDSA)是使用椭圆曲线密码(ECC)对数字签名算法(DSA)的模拟。ECDSA于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。它在1998年既已为ISO所接受,并且包含它的其他一些标准亦在ISO的考虑之中。与普通的离散对数问题(d ...
分类:
编程语言 时间:
2017-12-04 19:02:21
阅读次数:
268
看完后不禁让人感叹的神奇算法。 提出该协议的两人,Whitefield Diffie和Martin Hellman于2015年荣获图灵奖。 核心思想:利用原根与离散对数的特性,在双方第一次接触时即可产生一个密钥, 特点是,在不传输密钥的条件下,通信双方又能知道他们两人的共享密钥是什么。 由此避免了第 ...
分类:
其他好文 时间:
2017-11-02 11:24:00
阅读次数:
125
题意: 给你n(不超过200w)个数,和一个数r,问你有多少种方案,使得你取出某个子集,能够让它们的乘积 mod 2017等于r。 2017有5这个原根,可以使用离散对数(指标)的思想把乘法转化成加法,然后就可以用bitset优化dp了。 裸的dp方程是f(i,j)=f(i-1,j)+f(i-1,( ...
分类:
其他好文 时间:
2017-09-08 21:49:27
阅读次数:
621
一个数m如果有原根,则其原根个数为phi(phi(m))。特别地,对素数有phi(p)=p-1。 假设g是奇素数p的一个原根,则g^1,g^2,...,g^(p-1)在模p意义下两两不同,且结果恰好为1~p-1,由此可以定义“离散对数”,与连续数学中的对数有异曲同工之妙。 离散对数又叫做“指标”,有 ...
分类:
其他好文 时间:
2017-09-08 21:46:09
阅读次数:
307
题目就不贴了。都是一样的套路求解a^x % c = b的最小x 注意HDU的题目很坑,有b比c大和题目中输出信息为全角引号的坑 下面贴的是HDU的版本,poj的改一下a,b,c顺序和输出就好 #include <iostream> #include <cstring> #include <algor ...
分类:
其他好文 时间:
2017-08-21 14:47:30
阅读次数:
133
3992: [SDOI2015]序列统计 Description 小C有一个集合S,里面的元素都是小于M的非负整数。他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S。 小C用这个生成器生成了许多这样的数列。但是小C有一个问题需要你的帮助:给定整数x,求所有可以生成 ...
分类:
其他好文 时间:
2017-08-06 15:04:18
阅读次数:
157
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<cstdlib> 5 #include<cmath> 6 #include<map> 7 using namespace std; 8 typedef lo ...
分类:
其他好文 时间:
2017-04-16 18:54:52
阅读次数:
355
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4128 大水题一道 使用大步小步算法,把数字的运算换成矩阵的运算就好了 矩阵求逆?这么基础的线代算法我也不想多说,还是自行百度吧 需要注意的是矩阵没有交换律,所以在计算$B\cdot A^{-m ...
分类:
编程语言 时间:
2017-04-05 01:13:33
阅读次数:
225
3992: [SDOI2015]序列统计 Description 小C有一个集合S,里面的元素都是小于M的非负整数。他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S。 小C用这个生成器生成了许多这样的数列。但是小C有一个问题需要你的帮助:给定整数x,求所有可以生成 ...
分类:
其他好文 时间:
2017-02-12 19:53:49
阅读次数:
151