- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 AC自动机原理说明
1. AC自动机的功能:用于多模匹配,所谓多模匹配,就是给定一个带匹配的字符串string,给定一个字典dictionary,dictionary中有多个字符串{ str1,str2, str3 … } 多模匹配就是要得到string字符串中出现了dictionary的哪些字符,且这些字符出现在了string中的哪个位置。 2. AC自动机的原理:AC自动机的难点在于构建一个DFA
2016-03-12 22:46:32 4224
原创 poj-3253哈夫曼树
题目的意思是。要把一块木板切成所需要的n块,但是每切一刀需要收费。收费的方法是(网上有一些人理解有误):每当在一块木板上动刀子,这块木板的原有长度代表了这刀的费用。思路:切割的过程可以用一棵二叉树表示,每个节点有两个或者没有子节点,节点存储切割过程中每块木板的长度。父节点的值=两个子节点相加 根节点是原始木板长度。每块所需要的木板都是叶子节点。非叶子节点的值之和
2015-06-15 19:57:50 1417
原创 poj-2186 受欢迎的奶牛(tarjan算法应用)
题意:有n只奶牛,奶牛之间有倾慕的关系,并且倾慕关系是可以传递的。要求找出某几个奶牛,这几个奶牛被所有的奶牛喜欢。奶牛的关系抽象成为有向图,a喜欢b表示为a点到b点有一条有向边。思路:1 通过tarjan算法,求出强连通分量,并且把这些强连通分量缩成缩点。通过这种方法把图转化为有向无环图。2 在这个有向无环图中,如果存在唯一一个点A,这个点的出度为0,有向无环图中所
2015-06-13 17:25:14 3697
原创 从0开始用javascript和HTML5的canvas编写光线追踪渲染器<二>
局部光照模型简介:在上一节,介绍了光线追踪算法的基本框架,里面提到了两个新的概念,其中一个是局部光照模型(phong模型),另一个是光线投射算法。光线投射算法我会在下一节介绍,本节主要介绍什么是phong局部光照模型。局部光照模型,顾名思义就是只考虑光线在该物体上的作用,而不用考虑物体之间光能的传递。phong模型分为三大部分,漫反射分量diffuse, 镜面反射分量refle
2015-06-09 14:53:37 1699
原创 tarjan算法原理介绍
证明比较繁琐,仔细检查了应该没有大错,记录一下证明过程。强连通分量定义:在有向图中,强连通分量的定义是:有向图的某个子图,其中任意两个点之间可以互达。强连通分量的定理:定理1:一个完整的强连通分量一定包含在一棵深度优先搜索树中。定理2:子图是强连通分量子图中的每一条路径都归属于一个环状(除非只有一个点)。证明:根据强连通分量的定义,任意两个点之间可以互达,所以等价于
2015-06-09 11:22:25 5405 3
原创 从0开始用javascript和HTML5的canvas编写光线追踪渲染器<一>
序题目写的比较吸引眼球,实际上这个光线追踪渲染器十分简陋,只能渲染最简单的几何体----球体,效果也很简陋。但是十分简单,核心代码只有200-300行。很适合初学者学习计算机图形学的一些基本概念。 以下我会通过介绍一些基本算法,逐步构建这个“光线追踪渲染器”。
2015-04-27 21:31:04 3106
原创 搜索算法总结
搜索算法广泛应用于人工智能领域,但是由于时间复杂度是指数级别,计算机科学家在朴素的搜索算法(广度优先,深度优先搜索)上优化得到了一系列搜索算法 本文介绍的搜索算法主要指:广度优先搜索,深度优先搜索,以及在此基础上优化得来的A*算法,分支限界算法(待续)。如有错误欢迎指正。 为了便于描述,搜索算法适用解决在一张有权无向图中,找到从原点到终点的最短路径。基础搜索算法的通式是这样
2015-04-23 13:17:47 7245
原创 poj_1020 anniversary cake
求给定的n(1思路和方法:这道题不可以用贪心算法,有特殊的情况会覆盖不到。思路:类似于欧罗斯方块,每次选一个方块放到最低点。数据结构解释:struct piece{ int size;//边长 int num;//数量 int remine;//剩余 } //存储每个蛋糕碎片的信息struct piece pieces[];//蛋糕碎片的数组
2015-04-21 12:53:44 425
原创 poj_1088 滑雪 动态规划(盖浇饭算法)
题目:Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
2015-04-15 20:15:24 627
原创 分布式算法 3 最大独立集
独立集就是指:图G=(V,E)中,I是G中的一个子集,如果I中任意两个点之间不存在e属于E,则I就是独立集。如果无法加入G中的任意一个点使得I依然保持独立集,那么I就是最大独立集。(最大独立集并不要求其中包含的点要最多,也就是说一个图G可以有多个最大独立集,例子:下图,白色和黑色都是最大独立集) 计算最大独立集的算法lubyMIS算法:(一种随机化算法,有一定的
2015-04-07 20:13:58 2946
原创 分布式算法 2 领导者选择算法
算法产生于局部令牌环网:当令牌在环网中丢失,需要重新产生一个令牌,这就相当于产生一个领导者。这个领导者要求唯一。定理:如果每一个进程都相同,则无法选举出唯一领导者。(如果每个进程都相同,则在同步系统运行中,每个进程发出的消息,接收的消息,状态的变化都相同,会同时进入领导者状态)基本算法 LCR算法:每个进程都沿环网发送自己的标示符uid(各不相同),并且
2015-04-07 14:57:22 2726 2
原创 分布式算法 1 同步网络的形式化描述
同步的含义:在分布式系统中,同步指的就是每个进程都有一个统一的时钟,在每次时钟周期中,所有的进程一起同时做动作。进程形式化描述:同步网络用有向图G = (V,E)表示。每个V代表进程的集合。V中的每个进程 i 由以下几个部分组成:states:进程所处状态集合。start:进程的开始状态集合。msg(states,out-nbrs):消息生成函数,输入参数是出向邻接进程
2015-04-07 11:26:11 898
原创 poj_1062
题干:年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:"嗯,如果你能够替我弄到大祭司的皮袄,我可以只要8000金币。如果你能够弄来他的水晶球,那么只要5000金币就行了。"探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其
2015-04-07 11:19:27 597
原创 RandomAttack algorithm
有通信链路故障的同步完全图网络下,进程一致性算法问题形式化描述:有n个进程,每个进程可以选择(0,1)中的某个值,要求这些进程做决定前满足 1. 一致性(每个进程的最终结果要相同) 2. 有效性:如果所有进程都从0开始,那么0就是唯一可能的决定值; 如果进程都以1作为初值并且所有消息都被传递,则1是唯一的决定值。 3. 终止性:所有进程最后都会
2015-04-06 12:19:24 1199
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人