摘要: 【数位长度】 给定一个数 n,求其位数。 将其写成科学计数法 n = x.abcd * 10y (|x| < 10), 其中的y其实就是除最高位以外的位数 f(n) = y + 1 = log10(n) + 1; 【求一个数的高3位和低3位】 给定一个数n,不知其位数,低三位就是 n mod 100 阅读全文
posted @ 2018-10-13 14:39 西风show码 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 一、二分图的基本概念 【二分图】 二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 也就是说,只 阅读全文
posted @ 2018-10-12 12:50 西风show码 阅读(10192) 评论(0) 推荐(5) 编辑
摘要: 一、欧几里得算法(辗转相除法) 二、扩展欧几里得算法 在求a,b的gcd的同时求出一组特解 x,y满足方程 ax + by = gcd(a,b) 三、关于方程 ax + by = c 若gcd(a,b) | c,则方程有解,否则无解。 【解法】先运用扩展欧几里得算法求出ax + by = gcd(a 阅读全文
posted @ 2018-10-10 20:14 西风show码 阅读(7882) 评论(0) 推荐(1) 编辑
摘要: 【目录】 一、素数筛 1.素数判断 2.素数普通筛 3.素数线性筛 4.素数区间筛 二、欧拉函数筛 三、莫比乌斯函数筛 【素数筛】 1.直接判定质数 2.素数普通筛 3.素数线性筛 保证每个素数只会被筛一次 4.素数区间筛 给定整数a和b,请问区间[a,b]内有多少个素数? a<b<=10^12 b 阅读全文
posted @ 2018-10-09 21:00 西风show码 阅读(482) 评论(0) 推荐(0) 编辑
摘要: 【传送门】https://acm.ecnu.edu.cn/contest/113/problem/C/ 【题解】 推导过程: 【技巧】 (1)直接用二维数组存储矩阵肯定超内存,注意到K的范围该矩阵是一个稀疏的矩阵所以直接将其转化为线性的,a[(i-1)+j]表示其第i行第j列的状况 (2)注意到单个 阅读全文
posted @ 2018-10-03 17:18 西风show码 阅读(293) 评论(0) 推荐(1) 编辑
摘要: 【定理概述】 中国剩余定理(孙子定理)是中国古代求解一次同余式组的方法。是数论中一个重要定理。一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作《孙子算经》卷下第二十六题,叫做“物不知数”问题,原文如下: 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?即,一个 阅读全文
posted @ 2018-10-02 19:50 西风show码 阅读(7279) 评论(0) 推荐(1) 编辑
摘要: 【辗转相除法求GCD】 欧几里得法求GCD效率较辗转相减法求GCD而言效率要高得多。 算法原理:gcd(a,b)=gcd(b,a mod b) 首先我们可以假设a=k∗b+ra=k∗b+r(其中的r代表着a/b的余数,也就是a%b的结果) 1.首先我们假设d是a和b的最大公约数,则我们可以知道 a可 阅读全文
posted @ 2018-10-02 17:47 西风show码 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 【KMP简述】 主串长度为n,模式串长度为m,朴素的算法下,对于主串S的每一位S[i]都要往后扫描m个字符,所以时间复杂度为O(nm)。 对于KMP算法,它的时间复杂度降到了O(m+n)。原理是用一个next数组预处理了主串的局部匹配信息(最长相同前后缀长度),在进行主串与模式串的匹配时,保证了主串 阅读全文
posted @ 2018-10-02 12:41 西风show码 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 【目录】 1.快速幂(取模) 2.矩阵快速幂 一、快速幂(取模) 1.快速幂取模算法 二、快速幂矩阵 1.适用场景 a.清楚状态转移但无法求出通项公式或者递推公式。 (1)初始状态可设为单位阵 (2)通过简单试验可以得到状态转移矩阵 (3)后继状态可以通过当前状态转移之,其实就是在当前矩阵基础上乘上 阅读全文
posted @ 2018-10-01 20:37 西风show码 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 【算法简述】 马拉车(Manacher)算法是在O(n)时间内解决寻找源字符串的最长回文子串S的问题的算法。 朴素算法情况下对于每一个S[i]都要左右遍历其最大回文子串,所以时间复杂度是O(n2) 【算法原理】 充分利用之前求得的S【j】,为求S【i】服务。 预处理:在每个字符左右两边插入#将字符串 阅读全文
posted @ 2018-09-26 10:16 西风show码 阅读(2823) 评论(2) 推荐(0) 编辑