
数学-数论
君诺
这个作者很懒,什么都没留下…
展开
-
快速幂&&快速计算(a*b)mod m
概述:起初在dalao的博客里看到这个(a*b)mod m就觉得很不解,为什么(a*b)对m求余还需要用一个函数来实现,非常的不解。想想之后才发现自己真的蠢,要是m很大的话,虽然有a,b 简要思路:。由于二者思路类似,所以这里只说快速幂,记得以前知道这样一个概念,用1,2,4,8...2^n的线性组合可以表示2^n以内任意的数,快速幂正是利用了这个原理。这是基于二进制的一个原理,比如11的二原创 2017-11-17 19:09:50 · 2166 阅读 · 0 评论 -
POJ 3243 Clever Y (扩展BSGS算法)
题目:POJ 3243 Clever Y (扩展BSGS算法)题目大意:就是给定a,b,p,让求一个x使得a^xmodp=bmodp。解题思路:由于数据很大,直接暴力枚举一定超时,由于对p取mod得到的数值是以euler(p)为循环的,这样将原来的式子拆成(a^m)^kmodp=b*a^ymodp,也就是meet in middle,这样只需要枚举到sqrt(p)即可。当然,存的时候有两种原创 2018-02-03 20:30:14 · 333 阅读 · 0 评论 -
HDU-2588 GCD(欧拉函数)
题目:HDU-2588 GCD 题目大意:给定两个数n和m,求所有大于m的gcd(i,n)(i=1,2....n-1)的个数。 解题思路:这个题睡前看的,睡着之前一直辗转反侧的想(其实也就一小会),数据量不小,暴力一定超时,欧拉函数是求与n互素的数的个数,也就是gcd(i,n)=1的这样的i的个数,突然不会,可是转念一想,gcd(a*c,b*c)=gcd(a,b),那么和n的最大公约数原创 2017-11-26 13:44:57 · 297 阅读 · 0 评论 -
HDU-3123 GCC(水题)
题目:HDU-3123 GCC 题目大意:给定一个数n,求(0!+1!+.....n!)mod m。 解题思路:乍一看n挺大挺吓人,可是m很小,大于等于m的数的阶乘mod m就是0,这样一看这个题目就非常的水了。 AC代码:#include#include#include#include#include#define maxn 1000010using原创 2017-11-26 13:22:39 · 187 阅读 · 0 评论 -
POJ-3641 Pseudoprime numbers(快速幂)
题目:POJ-3641 Pseudoprime numbers 题目大意:给了base-a Pseudoprime numbers一个定义,就是首先某个数p不是素数,然后这个数对于一个数a,满足a^p mod p=a。现在给定两个数p,a让我们判断p是否为base-a Pseudoprime numbers。 解题思路:按照定义判断即可,p比较大,所以用到了快速幂。 AC代码:原创 2017-11-26 13:08:22 · 210 阅读 · 0 评论 -
POJ-2689 Prime Distance(筛素数的平移)
题目:POJ-2689 Prime Distance 题目大意:给定一个区间[l,r],让求区间当中相邻素数组中距离最小的一组素数以及距离最大的一组素数。 解题思路:分析一下数据发现,虽然区间的右端点的最大值可以达到2^32左右,但是,区间的跨度确实极小的,应用这个,可以通过筛两次素数,第一次正常筛出2^16以内的素数,第二次对筛法进行区间平移,从区间的左端点开始筛除即可。这里注意左端原创 2017-11-26 12:55:43 · 283 阅读 · 0 评论 -
POJ-1995 Raising Modulo Numbers(快速幂简单应用)
题目:POJ-1995 Raising Modulo Numbers 题目大意:说实话,并不知道题目大意,看样例就能过的一道题,就是让求(A1^B1+....An^Bn)MOD M 解题思路:一看数据量不大,直接快速幂过之,第一发tle了,因为用了快乘,去了就a了,看起来不溢出的题还是最好别用快乘,不是一个很快的东西。算是一个快速幂的模板题了吧。 AC代码:#include原创 2017-11-26 12:43:45 · 218 阅读 · 0 评论 -
POJ-1811 Prime Test(Miller_Rabin算法和Pollard_rho算法模板题)
题目:POJ-1811 Prime Test 题目大意:非常简单的题意,就是让判断一个大数是否为素数,若不是,求出他的最小素因子。 解题思路:Miller_Rabin算法和Pollard_rho算法模板题-算法详解 AC代码:#include#include#include#include#include#include原创 2017-11-26 12:10:34 · 321 阅读 · 0 评论 -
POJ-1730 Perfect Pth Powers(思维:大数分解素因子)
题目:POJ-1730 Perfect Pth Powers 题目大意:判断一个数n,若有x^p=n,求p的最大值。 解题思路:这个题一开始瞄了一眼题解,发现pow还可以开根号,但是并不想怎么做,晚上睡觉的时候想起来可以用分解素因子的做法做,因为对数a,b,有a^p*b^p=(a*b)^p,这是其一,然后有a^(p1*p2)=(a^p1)^p2,综上所述,也就是找到数n的所有素因子a1原创 2017-11-26 12:03:11 · 372 阅读 · 0 评论 -
POJ-1284 Primitive Roots(原根的个数定理)
题目:POJ-1284 Primitive Roots 题目大意:给定一个奇素数,求他的原根的个数,其中,一个数n的原根是指一个小于n的正整数x,若有x^1mod n,x^2 mod n...x^n-1 mod n刚好是n-1的一个全排列,那么原创 2017-11-26 11:49:50 · 545 阅读 · 0 评论 -
POJ - 1006 Biorhythms(CRT中国剩余定理)
前述:对做过的题目进行复习,顺便整合一下专题里面比较经典的数论题目。 POJ - 1006 Biorhythms 这是一道CRT的模板题,也是最经典的例题,题意就是人的体力,情感,智力分别有高峰周期m1=23,m2=28,m3=33,给定一个三者达到高峰的初始日期(从一年的第一天开始的日期),问重新达到高峰的日期与给定日期的差值,若求得的数小给定日期,则加上21252。因为三个周期满足原创 2017-11-26 11:16:25 · 296 阅读 · 0 评论 -
欧几里得算法&&拓展欧几里得算法
前述:欧几里得算法是求算两个数的最小公倍数的一个非常有效的算法,而由其经过推理改造得到的拓展欧几里得算法更是一个应用广泛的算法,由于我比较菜,做的 题目很少,对这块知识点的理解一直不是特别的深刻,完全停留在有这样一个知识点,大概知道他的推理过程,以及有怎么个模板而已。于是遇到相关的变式题目屡屡 受挫,于是今天花了一定时间,就算法的推导以及应用方面自己通了一遍,以下是相关总结。 欧几原创 2017-11-21 22:22:26 · 314 阅读 · 0 评论 -
一元线性同余方程&&一元线性同余方程组
概述:求解一元线性同余方程以及一元线性同余方程组是拓展欧几里得算法的一个重要应用,以下是对问题所包含的几种情况向着拓展欧几里得算法转化的方法。 一元线性同余方程(形如:a*x = b(mod m)): 这种方程的求法可以转化成为一个不定方程:a*x-m*y=b原创 2017-11-21 23:03:03 · 702 阅读 · 0 评论 -
素数相关
前述:有关于数论这一部分也看了不少了,正好今天去看病,路上总结一下有关于素数的一些相关知识,汇总一下我所见过的素数相关判别法,当然有可能不怎么官方的说法,按照自己的理解写的。 素数的定义:对于一个数n,若n除了1和它本身没有其他因子,那么则称n是一个素数。 素数的判别法: 1.定义法:这也就是为什么要再提一遍这个简单定义的原因,定义在数学中是极为重要的,所有的定理都是由公理和定义原创 2017-11-19 10:45:03 · 500 阅读 · 0 评论 -
威尔逊定理
概述:威尔逊定理是判断一个数p是否是素数的又一个充分必要条件,但由于这个定理计算起来并不方便,所以并不作为判别素数的一个方式,但是却有着它独道的用处。 定理内容:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p )。 简要证明(摘自百度):充分性如果“p”不是素数,那么它的正因数必然包含在整数1, 2, 3, 4, … ,p− 1 中,因此原创 2017-11-17 18:30:04 · 1038 阅读 · 0 评论 -
Uva1434 YAPTCHA(威尔逊定理应用)
题目链接:http://uva.onlinejudge.org/index.phpoption=com_onlinejudge&Itemid=8&category=516&page=show_problem&problem=4180 这个题目就是让计算的值,分析一下可以看的出来,就是让计算1/3k+7加上(3k+6)!/3k+7的小数部分,是一个威尔逊定理的应用的题目。 威尔逊定理:当原创 2017-11-17 22:16:44 · 946 阅读 · 0 评论 -
Miller_Rabin算法&&Pollard-Rho算法
前述:近期在uva上刷到一个题,prime test,题意非常简单,就是让判断一个2^54以内的数是否为素数,年轻的我满脑子都是相关的暴力加优化,做之前我还去百度搜了一下判断一个数是否为素数的最佳方法,博主给的是素数的线性筛法,很自信的敲完代码,然后很自信的tle。做不了了,搜了一下题解,原来并不是一道简单题,涉及到本文提及的两个算法,Miller_Rabin算法&&Pollard-Rho算法,当原创 2017-11-17 21:32:17 · 321 阅读 · 0 评论 -
2018年hdu多校1007 Chiaki Sequence Revisited(谜之Meta-Fibonacci,二分+求n!中a出现的次数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6304 题目大意:求Meta-Fibonacci的前缀和。 谜之求和,打表得到前几项发现是,1 1 2 2 3 4 4 4 5 6 6 7 8 8 8 8 9.......明显除了1之外,其他数字出现的次数跟它当中含有2的幂次有关,比如奇数中不含有2,所以只出现1次,而2=2^1,6=2...原创 2018-07-24 11:23:58 · 475 阅读 · 0 评论