
模板
程序员bigsai
坚持分享学习,写了一本原创数据结构与算法pdf分享给大家。
展开
-
矩阵快速幂&求大斐波那契&poj3070(java)
题目链接 核心思想为: 从右往左。可以一直递推,然后到最后一项,然后快速幂求矩阵,矩阵最终的结果就是所求结果。 更新:java的矩阵通用乘法可以表示为,可以将下列代码替换道ac代码中: static int [][] multiplication(int a[][],int b[][]){// int x=a.length;//a[0].length=b.length 为满足条件...原创 2018-11-19 10:49:20 · 3447 阅读 · 0 评论 -
快速幂模板(java)
知道快速幂首先要知道(a * b)%c=(a%c)*(b%c)还要知道 a^b= a^(2 *b/2)=a^2的b/2次方当换成int类型需要考虑奇偶型做不同处理那么幂分为奇偶数考虑b%2=0: ab= a2*(b/2)=(a2)b/2b%2=1:ab=a* a2*(b/2)=a*(a2)b/2(因为b/2之后为基数数值变小了(int)类型。5/2=2,2*(5/2)=4一样)。...原创 2018-11-18 09:46:56 · 3614 阅读 · 0 评论 -
拓展欧几里得模板/求逆元模板(java)
拓展欧几里得模板 参考:哈尔滨理工大学ACM培训资料汇编/ACM-ICPC培训资料汇编* 基本原理 :设 a 和 b 不全为 0,则存在整数 x,y 使得 xa yb=gcd(a,b)=c 对于辗转相除法的最后一项 此时 b=0,则 gcd(a,b)=1a 0b,(这个a,b是经过gcd的最后一项a,b) 因为gcd(a,b)=gcd(b,a%b) 则有x *a y *b=x1 *b ...原创 2018-11-18 10:55:27 · 4333 阅读 · 0 评论 -
两种欧拉函数模板
求欧拉函数代码的方式:直接求和打表 欧拉函数的作用:一个数n,求小于n的互质的个数。特例:1——oula(1)=1; 欧拉函数的公式: 其中i为x所有质因数。注意:每种质因数只一个 为什么会这样?首先,互质的两个数一定不能有公共因数。比如9和7互质,9和12不互质,因为有共同因数3. 那么我难道需要一个个循环比较吗? 答案先然不可能,因为如果数值过大这是个很大的复杂度。那么我该如...原创 2018-12-07 22:57:02 · 2751 阅读 · 0 评论 -
素数筛模板
在判定素数的问题中,随着不断学习,里面的拓展性也在不断地增加。 问题:判定一个数是否为素数: 想都不想的方法: static boolean isprime(int value){ for(int i=2;i( 3)数组尾],6,9,12 * * 不是素数 4: [i=4]不是素数,跳过 5: . . . . . . . . . . . . 这个到除了前面几次的计算量多一点,到后面...原创 2019-05-22 21:52:58 · 3206 阅读 · 0 评论 -
唯一分解定理(算术基本定理)详解——hdu5248和lightoj1341
算数分解定理(唯一分解定理):定义:任何一个大于1的自然数 N,如果N不为质数,那么N可以唯一分解成有限个质数的乘积 N=P1a1 P2a2P3a3…Pnan,这里P1<P2<P3…<Pn均为质数,其中指数ai是正整数。这样的分解称为 N 的标准分解式.应用:对于一个正整数n,如果n=q1a1 * q2 a2 * …* qnan,那么他的正因数个数为(1 a1) * (1 ...原创 2019-05-23 14:20:45 · 5524 阅读 · 1 评论 -
全排列两种实现方式(java)—poj2718
以前遇到的全排列,清一色的dfs回溯,自己知道时间复杂度挺高的,最近遇到poj2718认真总结了下全排列。 全排列:给定几个数,要求找出所有的排列方式。 法一:dfs回溯法: 思路:回溯法的核心思路就是模拟过程,其实它相对简单因为你往往不需要考虑它的下一步是什么,你只需关注如果操作这些数。你往往可能不在意数的规则规律但是也能搞出来。 举个例子。有1,2,3,4,5五个数需要...原创 2019-05-18 15:51:07 · 4011 阅读 · 1 评论