算法
文章平均质量分 55
AbandonZHANG
ACM 蒟蒻
展开
-
N!分解素因子及若干问题
将N!表示成 N! = p1^t1*p2^t2*…pi^ti…*pk^tk(其中p1,p2……pk是素数,1) 显然很容易通过素数筛选求出pi,因为1,关键是如何快速地求出ti。 我们先来看一下对于2这个素因子,把N!分成两部分,即奇偶两部分 假设N是偶数 N! =1*2*3*4*5……N =(2*4*6……) * (1*3*5……) 因为原创 2012-06-11 13:19:14 · 474 阅读 · 0 评论 -
迭代加深ID-DFS搜索算法
迭代加深ID-DFS搜索算法 迭代加深搜索,实质上就是限定下界的深度优先搜索。即首先允许深度优先搜索K层搜索树,若没有发现可行解,再将K+1后重复以上步骤搜索,直到搜索到可行解。 迭代加深搜索算法的实现原理及基本框架 在迭代加深搜索的算法中,连续的深度优先搜索被引入,每一个深度约束逐次加1,直到搜索到目标为止。 基本框架如下: ProcedureID-dfs(dep:integer)原创 2012-06-23 03:50:23 · 712 阅读 · 0 评论 -
trie树--详解
trie树--详解(转) l Trie原理 Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。 l Trie性质 好多人说trie的根节点不包含任何字符信息,我所习惯的trie根节点却是包含信息的,而且认为这样也方便,下面说一下它的性质 (基于本文所讨论的简单trie树) 1. 字符的种数决定每个节点的出度,即branch数原创 2012-07-01 00:34:46 · 433 阅读 · 0 评论 -
farey(法莱)数列 (USACO Ordered Fractions)
载自: http://blog.csdn.net/bao110908/archive/2007/11/28/1905328.aspx 分数有不少有趣的特性,就连普通的分数也有不少有趣的东西。也许你回想得起,算术里头的普通分数是指分母、分子均为整数的那样一种分数。当分母大于分子时,该分数称为真分数。 如果指定一个分母的上限,再把各普通分数(以最简分数形式出现)按从小到大的次序排原创 2012-06-11 12:40:03 · 1356 阅读 · 0 评论 -
KMP算法
KMP算法 KMP 匹配算法是由 "Knuth Morris Pratt" 提出的一种快速的模式匹配算法。 hint:不为自身的最大首尾重复子串长度 1.待解决的问题:假设P为给定的子串,T是待查找的字符串,要求从T中找出与P相同的所有子串,这称为模式匹配问题。 (可以给出子串在T中的位置) (下文中提到的P和T分别为子串和目标串) 让我们先来看个例题原创 2012-07-14 15:50:19 · 323 阅读 · 0 评论 -
高斯消元法(Gauss Elimination) 分析 & 题解 & 模板
高斯消元法(Gauss Elimination) 分析 & 题解 & 模板——czyuan原创 高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。 高斯消元法的原理是: 若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。 所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。原创 2012-07-18 14:21:39 · 2071 阅读 · 0 评论