摘要:
一、博客导航 阅读全文
摘要:
桥99 阅读全文
摘要:
8 阅读全文
摘要:
一、博客导航 阅读全文
摘要:
一、博客导航 阅读全文
摘要:
一、博客导航 阅读全文
摘要:
一、相关介绍 后缀数组 处理字符串的有力工具 可以处理后缀自动机解决不了的问题 后缀数组被称为SA,后缀自动机被称为SAM 。 更详细的讲解点击 阅读全文
摘要:
3 阅读全文
摘要:
一、相关介绍 线段树:它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题。由于二叉结构的特性,它基本能保持每个操作的复杂度为O(logn)。 线段树的每个节点表示一个区间,子节点则分别表示父节点的左右半区间,例如父亲的区间是[a,b],那么(c=(a+b)/2)左 阅读全文
摘要:
一、相关定义 树状数组 获取数组中连续n个数的和 修改数组中某点的值 时间复杂度:O(logn) 小结:树状数组的强项在于对数组进行维护查询(如,修改某点的值、求某个区间的和)。当然,数据规模不大的时候,对于修改某点的值是非常容易的,复杂度是O(1),但是对于求一个区间的和就要扫一遍了,复杂度是O( 阅读全文
摘要:
20 阅读全文
摘要:
点击 阅读全文
摘要:
1.欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。 2.通式:φ(x)=x*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。 φ(1)=1(唯一和1互 阅读全文
摘要:
特别的,当p为素数时,x无法被p整除,φ(p)=p-1,于是便有费马小定理Xp-1≡1(mod p) 在p是素数时,对任意正整数x都有Xp≡X(mod p) 于是对于a的逆元x,有ax≡1(mod m),对于a,m互素且m为素数时,有x=am-2,于是我们可以通过快速幂快速求出a的逆元。 另外,借助 阅读全文
摘要:
【实战应用】 POJ1845:http://www.cnblogs.com/shenben/p/6264322.html BZOJ2186:http://www.cnblogs.com/shenben/p/6264347.html 阅读全文
摘要:
一、相关介绍 快速幂 做到快速求幂 时间复杂度:O(logn) 问题引入 题目:求ab 朴素解法:将a连乘b次,那么对应的时间复杂度就是O(b),即O(n)。 快速幂法:关于此题的快速幂法会在下面的算法实现提及。 二、算法实现 下面以求ab的过程为例讲解快速幂的实现: b可以转换为二进制数,该二进制 阅读全文
摘要:
13 阅读全文
摘要:
一、相关介绍 知识要求 AC自动机 多模式串的字符匹配算法(KMP是单模式串的字符匹配算法) 单模式串问题&多模式串问题 单模就是给你一个模式串,问你这个模式串是否在主串中出现过,这个问题可以用kmp算法高效完成; 多模就是给你多个模式串,问你有多少个模式串在这个主串中出现过。 若我们暴力地用每一个 阅读全文
摘要:
12 阅读全文
摘要:
一、博客导航 阅读全文
摘要:
一、前人种树 博客:拓扑排序 博客:拓扑排序 阅读全文
摘要:
一、最小生成树 树:在无向图中,连通且不含圈的图。 生成树:给定无向图G = (V,E),连接G中所有点,且边集是E的子集的树(此处是G的生成树)。 最小生成树:权值最小的生成树。 构造MST的算法:Prim算法/Kruskal算法)。 克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复 阅读全文
摘要:
一、最短路径 最短路径:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径。 求最短路径的四个算法如下: 二、算法概述 【Dijkstra算法】 单源最短路:从单个源点出发,到所有结点的最短路 作用:计算正权图上的单源最短路。 图类型:有向图、无向图。 限制:边权为正。 【Bel 阅读全文
摘要:
一、重拾关键 宽度优先搜索,也有称为广度优先搜索,简称BFS。类似于树的按层次遍历的过程。 初始状态:图G所有顶点均未被访问过,任选一点v。 遍历过程:假设从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点 阅读全文
摘要:
一、相关定义 深度优先遍历,也有称为深度优先搜索,简称DFS。其实,就像是一棵树的前序遍历。 初始条件:图G所有顶点均未被访问过,任选一点v。 思想:是从一个顶点V1开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先 阅读全文