随笔分类 - 数据结构(基础篇)
1
摘要: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可以转换为二进制数,该二进制
阅读全文
摘要:一、相关介绍 知识要求 AC自动机 多模式串的字符匹配算法(KMP是单模式串的字符匹配算法) 单模式串问题&多模式串问题 单模就是给你一个模式串,问你这个模式串是否在主串中出现过,这个问题可以用kmp算法高效完成; 多模就是给你多个模式串,问你有多少个模式串在这个主串中出现过。 若我们暴力地用每一个
阅读全文
摘要:一、最小生成树 树:在无向图中,连通且不含圈的图。 生成树:给定无向图G = (V,E),连接G中所有点,且边集是E的子集的树(此处是G的生成树)。 最小生成树:权值最小的生成树。 构造MST的算法:Prim算法/Kruskal算法)。 克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复
阅读全文
摘要:一、最短路径 最短路径:从图中的某个顶点出发到达另外一个顶点的所经过的边的权重和最小的一条路径。 求最短路径的四个算法如下: 二、算法概述 【Dijkstra算法】 单源最短路:从单个源点出发,到所有结点的最短路 作用:计算正权图上的单源最短路。 图类型:有向图、无向图。 限制:边权为正。 【Bel
阅读全文
摘要:一、重拾关键 宽度优先搜索,也有称为广度优先搜索,简称BFS。类似于树的按层次遍历的过程。 初始状态:图G所有顶点均未被访问过,任选一点v。 遍历过程:假设从图中某顶点v出发,在访问了v之后依次访问v的各个未曾访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点
阅读全文
摘要:一、相关定义 深度优先遍历,也有称为深度优先搜索,简称DFS。其实,就像是一棵树的前序遍历。 初始条件:图G所有顶点均未被访问过,任选一点v。 思想:是从一个顶点V1开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先
阅读全文
摘要:一、问题引入 原题:杭电hdu1232畅通工程 题意:首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程
阅读全文
1