
经典算法设计
文章平均质量分 74
huangxy10
这个作者很懒,什么都没留下…
展开
-
简单动态规划——电路布线
电路布线【问题描述】在一块电路板的上、下两端分别有n个接线柱。根据电路设计,要求用导线(i,π(i))将上端接线柱i与下端接线柱π(i)相连,如图所示。其中,π(i),1在制作电路板时,要求将这n条连线分布到若干绝缘层上。在同一层上的连线不相交。你的任务是要确定将哪些连线安排在第一层上,使得该层上有尽可能多的连线。换句话说,就是确定导线集Nets={ i转载 2012-07-25 01:33:56 · 7092 阅读 · 2 评论 -
海量数据
1、 海量数据分布在100台电脑中,想个办法高校统计出这批数据的TOP10。方案1:s 在每台电脑上求出TOP10,可以采用包含10个元素的堆完成(TOP10小,用最大堆,TOP10大,用最小堆)。比如求TOP10大,我们首先取前10个元素调整成最小堆,如果发现,然后扫描后面的数据,并与堆顶元素比较,如果比堆顶元素大,那么用该元素替换堆顶,然后再调整为最小堆。最后堆中的元素就是TO原创 2012-10-18 22:11:41 · 2033 阅读 · 0 评论 -
Trie树——字典树
1、 概述Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。Trie一词来自retrieve,发音为/tri:/ “tree”,也有人读为/traɪ/ “try”。Trie树可以利用字符串的公共前缀来节约存储空间。如下图所示,该trie树用10个节点保存了6个字符串tea,ten,to转载 2012-10-18 23:21:57 · 1441 阅读 · 0 评论 -
编程之美-最短摘要
2011年题目:Alibaba笔试题:给定一段产品的英文描述,包含M个英文字母,每个英文单词以空格分隔,无其他标点符号;再给定N个英文单词关键字,请说明思路并编程实现方法String extractSummary(String description,String[] key words),目标是找出此产品描述中包含N个关键字(每个关键词至少出现一次)的长度最短的子串,作为产品简介输出原创 2012-10-18 18:54:25 · 2803 阅读 · 2 评论 -
求数组的子数组和的最大值
来源:编程之美2.24一些典型的测试用例:[1,-2,3,5,-3,2] max=8[0,-2,3,5,-1,2] max =9[-2,-4,-3] max=-2这是一个动态规划问题,设当前扫描到arr[i]则summax= max( arr[i], maxendinghere, maxsofar);其中maxendinghere原创 2012-10-18 21:08:57 · 1150 阅读 · 0 评论 -
KMP算法
在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明: S: ababcababa转载 2012-10-19 23:19:12 · 1021 阅读 · 0 评论 -
HMM学习笔记_2(从一个实例中学习HMM前向算法)
HMM学习笔记_2(从一个实例中学习HMM前向算法) HMM算法想必大家已经听说了好多次了,完全看公式一头雾水。但是HMM的基本理论其实很简单。因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察向量由一个具有相应概率密度分布的状态序列产生,又由于每一个状态也是随机分布的,所以HMM是一个双重随机过程。 HMM是转载 2012-10-19 20:50:51 · 1364 阅读 · 0 评论 -
HMM学习笔记_3(从一个实例中学习Viterbi算法)
HMM学习笔记_3(从一个实例中学习Viterbi算法) 在上一篇博客http://www.cnblogs.com/tornadomeet/archive/2012/03/24/2415583.html中,我们已经从一个例子中学会了HMM的前向算法,解决了HMM算法的第一个问题,即模型评估问题。这一讲中我们来解决第二个问题:HMM的解码问题,即即给定观测序列 O=O1O2O3…转载 2012-10-19 20:51:34 · 1779 阅读 · 0 评论 -
隐马尔可夫模型
数学之美之隐马尔可夫模型刚开始学习此类知识,好多模型、算法都还待了解,看到google研究员的数学之美系列有不少模型算法介绍,拿来摘下,虽然没有自己的东西,但是希望能自己能在这里留的时间长一点,21天可以一个习惯,权当开个头,希望今后能有自己的东西。原文:数学之美 系列一 -- 统计语言模型,数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用1.马尔可夫模型的假设转载 2012-10-19 20:17:21 · 1063 阅读 · 0 评论 -
HMM学习笔记_1(从一个实例中学习DTW算法)
HMM学习笔记_1(从一个实例中学习DTW算法) DTW为(Dynamic Time Warping,动态时间归准)的简称。应用很广,主要是在模板匹配中,比如说用在孤立词语音识别,计算机视觉中的行为识别,信息检索等中。可能大家学过这些类似的课程都看到过这个算法,公式也有几个,但是很抽象,当时看懂了但不久就会忘记,因为没有具体的实例来加深印象。 这次主要是用语音识别课程老转载 2012-10-19 20:52:28 · 2416 阅读 · 0 评论 -
LSA and PLSA笔记
1. 引子Bag-of-Words 模型是NLP和IR领域中的一个基本假设。在这个模型中,一个文档(document)被表示为一组单词(word/term)的无序组合,而忽略了语法或者词序的部分。BOW在传统NLP领域取得了巨大的成功,在计算机视觉领域(Computer Vision)也开始崭露头角,但在实际应用过程中,它却有一些不可避免的缺陷,比如:稀疏性(Sparseness)转载 2012-10-19 21:42:12 · 9752 阅读 · 0 评论 -
PLSA中的EM算法
PLSA中的EM算法主要记录下几个文章博客内容A Note on EM Algorithm for Probabilistic Latent SemanticAnalysis(翟成祥的NOTE)A Note on EM Algorithm and PLSA(一个中文比较好的总结 by Xinyan Lu)注意这两个是一个思路Probabilist转载 2012-10-19 22:15:34 · 3970 阅读 · 0 评论 -
并查集概念及其实现
1、 概述并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。2、 基本操作并查集是一种非常简单的数据结构,它主要涉及两个基本操作,分别为:A. 合并两个不相交集合B. 判断两个元素是否属于同一个集合(1) 合并两个不相交集合(转载 2012-10-18 23:18:20 · 1176 阅读 · 0 评论 -
最小生成树
设G = (V,E)是无向连通带权图,即一个网络。E中的每一条边(v,w)的权为c[v][w]。如果G的子图G’是一棵包含G的所有顶点的树,则称G’为G的生成树。生成树上各边权的总和称为生成树的耗费。在G的所有生成树中,耗费最小的生成树称为G的最小生成树。构造最小生成树的两种方法:Prim算法和Kruskal算法。 一、最小生成树的性质 设G = (V,E)是连通带权图,U是V转载 2012-10-07 20:55:55 · 2582 阅读 · 1 评论 -
BFS,dijkstra算法
http://ac.jobdu.com/problem.php?pid=1008题目描述:给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的。输入:输入n,m,点的编号是1~n,然后是m行,每行4个数 a,b,d,p,表示a和b之间有一条边,且其长度为d,花费为p。最后一行是两个数转载 2012-09-28 22:53:42 · 2468 阅读 · 0 评论 -
Catalan数的一些应用
Catalan数:令h(0)=1,h(1)=1,catalan数满足递归式:h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系;还可以化简为1阶递推关系: 如h(n)=(4n-2)/(n+1)*h(n-1)(n>1) h(0)=1该递推关系的解为:h(n)=C(2n,n)/(n+1) = P(2n原创 2012-07-25 01:20:18 · 816 阅读 · 0 评论 -
组合的字典序问题
题目来自:http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1202字典序问题时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:168 测试通过:10描述 在数据加密和数据压缩中常需要原创 2012-07-26 01:06:13 · 1224 阅读 · 0 评论 -
数字串划分
http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1882C. 数字串划分时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:13 测试通过:2描述 给你连续的N个数字符,在其中插入K原创 2012-07-26 13:08:26 · 1270 阅读 · 0 评论 -
OpenCV PCA
PCA(principal component analysis,主成分分析),又称为k-l变换,我想是大家用的最多的降维手段,对于PCA的理解,我想大神们都各有各的绝招,可以应用的场合也非常多。下面就介绍一下OpenCV中PCA这个类,因为常用,所以这个类相对OpenCV而言显得比较独立,放在了core这部分中。PCA类的成员函数包括构造函数、运算符重载()、project、backPr原创 2012-08-27 14:53:02 · 14192 阅读 · 3 评论 -
最长单调递增子序列
单调子序列包含有单调递增子序列和递减子序列,不失一般性,这里只讨论单调递增子序列。首先,从定义上明确我们的问题。给定序列a1, a2, …, an,如果存在满足下列条件的子序列ai1i2im, (其中i1即称为一个原序列的长度为m的单调递增子序列,那么,现在的问题是我们要找出一个序列的最长的单调递增子序列。 直观上来说,一个序列Sn,它有2n个子序列,枚转载 2012-10-01 23:16:01 · 1257 阅读 · 1 评论 -
一些面试题
转自:http://blog.youkuaiyun.com/zz198808/article/details/7879921简述TCP协议在数据传输过程中收发双方是如何保证数据包的可靠性的答:(1)为了保证数据包的可靠传递,发送方必须把已发送的数据包保留在缓冲区;(2)并为每个已发送的数据包启动一个超时定时器;(3)如在定时器超时之前收到了对方发来的应答信息(可能是对本包的应答,也可以转载 2012-10-05 00:33:13 · 1712 阅读 · 0 评论 -
不用中间变量实现交换
方法1:a=a+b;b=a-b;a=a-b;缺点:可能出现越界。方法2:a=a^b;b=a^b;a=a^b;转载 2012-10-05 00:28:58 · 780 阅读 · 0 评论 -
算法分类,学习过程
一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.acm主要是考算法的 ,主要时间是花在思考算法上,不是花在写程序与debug上。 下面给个计划你练练: 第一阶段: 练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码, 因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打 出来. 1.最短路(转载 2012-10-07 19:36:59 · 1918 阅读 · 0 评论 -
最短路径算法—Bellman-Ford(贝尔曼-福特)算法分析与实现(C/C++)
地址:http://www.wutianqi.com/?p=19121.Dijkstra算法:http://www.wutianqi.com/?p=18902.Floyd算法:http://www.wutianqi.com/?p=1903Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dij转载 2012-10-07 20:19:31 · 2507 阅读 · 0 评论 -
八数码问题
http://www.dakaren.com/blog/post/3.html八数码问题一.八数码问题八数码问题也称为九宫问题。在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同。棋盘上还有一个空格,与空格相邻的棋子可以移到空格中。要求解决的问题是:给出一个初始状态和一个目标状态,找出一种从初始转变成目标状态的移动棋子步数最少的移动步骤。所谓转载 2012-09-30 17:23:52 · 33527 阅读 · 1 评论 -
汉诺塔问题
一,移动次数的计算 现在有三根相邻的柱子,标号为A,B,C,A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘,现在把所有盘子一个一个移动到柱子B上,并且每次移动同一根柱子上都不能出现大盘子在小盘子上方,请问至少需要多少次移动,设移动次数为H(n)。 首先我们肯定是把上面n-1个盘子移动到柱子C上,然后把最大的一块放在B上,最后把C上的所有盘子移动到B上,由此我们得出表达式:原创 2012-10-07 23:28:23 · 6275 阅读 · 0 评论 -
关于算法有用的文章,博客,平台等
这里搜集一些有用的文章,博客和平台的连接:1,六维的空间http://www.cnblogs.com/liushang0419/archive/2011/04/27/2030970.html2,http://club.topsage.com/thread-2275475-1-1.htmlacm的答题的一些博客:非常值得学习。1,http://zc63原创 2012-07-26 12:31:12 · 926 阅读 · 0 评论