上一页 1 ··· 4 5 6 7 8 9 10 下一页
摘要: kmp算法是一种改进的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是根据给定的模式串W1,m,定义一个next函数。next函数包含了模式串本身局部匹配的信息。在S=”abcabcabdabba”中查找T=”abcabd”,如果使用KMP匹配算法,当第一次搜索到S[5]和T[5]不等后,S下标不是回溯到1,T下标也不是回溯到开始,而是根据T中T[5]==’d’的模式函数值(next[5]=2,为什么?后面讲),直接比较S[5]和T[2]是否相等,因为相等,S和T的下标同. 阅读全文
posted @ 2012-07-18 17:07 pony1993 阅读(1453) 评论(0) 推荐(1) 编辑
摘要: 字典树,又称单词查找树,Trie树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串,所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度的减少无谓的字符串比较,查询效率比哈希表高。它有三个基本性质,根节点不包含字符,除根节点外每一个节点都只包含一个字符,从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串,每个节点的所有子节点包含的字符都不相同。字典树的插入,删除和查找都非常简单,用一个一重循环即可。1. 从根节点开始一次搜索2. 取得要查找关键词的第一个字母,并根据该字母选择对应的子树并转到该子树继续进行检索3. 在相应的 阅读全文
posted @ 2012-07-18 08:45 pony1993 阅读(2315) 评论(0) 推荐(0) 编辑
摘要: 克鲁斯卡尔(Kruskal)算法(只与边相关)算法描述:克鲁斯卡尔算法需要对图的边进行访问,所以克鲁斯卡尔算法的时间复杂度只和边又关系,可以证明其时间复杂度为O(eloge)。算法过程:1.将图各边按照权值进行排序2.将图遍历一次,找出权值最小的边,(条件:此次找出的边不能和已加入最小生成树集合的边构成环),若符合条件,则加入最小生成树的集合中。不符合条件则继续遍历图,寻找下一个最小权值的边。3.递归重复步骤1,直到找出n-1条边为止(设图有n个结点,则最小生成树的边数应为n-1条),算法结束。得到的就是此图的最小生成树。克鲁斯卡尔(Kruskal)算法因为只与边相关,则适合求稀疏图的最小生成 阅读全文
posted @ 2012-07-17 14:59 pony1993 阅读(1415) 评论(0) 推荐(0) 编辑
摘要: 1、最短路上的统计题目:一个无向图,没有自环,所有边的权值均为1,对于一个点对(a,b),输出a,b之间所有最短路上的点的总个数。题解:floyed求出所有的最短路,如果 map[a,b]=map[a,k]+map[k,b]那么 k 就是 a b 最短路上的点。最后输出总个数+2。编译通过...├测试数据01:答案正确...0ms├测试数据02:答案正确...0ms├测试数据03:答案正确...0ms├测试数据04:答案正确...0ms├测试数据05:答案正确...0ms├测试数据06:答案正确...0ms├测试数据07:答案正确...0ms├测试数据08:答案正确...0ms├测试数据09: 阅读全文
posted @ 2012-07-17 08:01 pony1993 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 昨天的杭电多校联合训练热身赛的一道题,求区间的中位数,快排会超时,划分树的模版题。。划分树是一种基于线段树的数据结构。主要用于快速求出(在log(n)的时间复杂度内)序列区间的第k大值。划分树和归并树都是用线段树作为辅助的,原理是基于快排和归并排序的。划分树的建树过程基本就是模拟快排过程,取一个已经排过序的区间中值,然后把小于中值的点放左边,大于的放右边。并且记录d层第i个数之前(包括i)小于中值的放在左边的数。具体看下面代码注释。查找其实是关键,因为再因查找[l,r]需要到某一点的左右孩子时需要把[l,r]更新。具体分如下几种情况讨论:假设要在区间[l,r]中查找第k大元素,t为当前节点,l 阅读全文
posted @ 2012-07-17 06:57 pony1993 阅读(5704) 评论(0) 推荐(3) 编辑
摘要: HDOJ 2544 最短路 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2544【code】(dijkstra):1#include<iostream>2#include<cstring>3#include<cstdio>4usingnamespacestd;5#definemaxn10016intmap[maxn][maxn];7intdijkstra(intfrom,intto,intn)8{9intdij[maxn],i,k;10boolused[maxn];11memset(used,false,si 阅读全文
posted @ 2012-07-14 17:16 pony1993 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 给定两个数a和b,计算出1在a和b之间出现的次数。解题思路: 可以由分治算法的思想,先求出1在0~a中出现的次数,再求出1在0~b中出现的次数,然后两者相减即可。1#include<stdio.h>2intd[11];//d[n]存储数字0~9分别出现的次数。3intvalue;//记录相应的权值变化4voiddeal(intn)5{6if(n<=0)7return;8intone,ten;//one,ten分别代表个位和十位、9one=n%10;10n/=10;11ten=n;12inti;13for(i=0;i<one;i++)//将个位上出现的数统计下来14d[i 阅读全文
posted @ 2012-05-30 10:11 pony1993 阅读(355) 评论(0) 推荐(0) 编辑
摘要: Stockbroker GrapevineTime Limit:1000MSMemory Limit:10000KTotal Submissions:19965Accepted:10793DescriptionStockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge in the st 阅读全文
posted @ 2012-05-25 21:06 pony1993 阅读(137) 评论(0) 推荐(0) 编辑
摘要: Cow HurdlesTime Limit:1000MSMemory Limit:65536KTotal Submissions:4584Accepted:1990DescriptionFarmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are practicing jumping over hurdles. They are getting tired, though, so they want to be able to use as little 阅读全文
posted @ 2012-05-25 19:59 pony1993 阅读(215) 评论(0) 推荐(1) 编辑
摘要: Machined Surfaces An imaging device furnishes digital images of two machined surfaces that eventually will be assembled in contact with each other. The roughness of this final contact is to be estimated. A digital image is composed of the two characters, "X" and " " (space). Ther 阅读全文
posted @ 2012-04-07 09:42 pony1993 阅读(1167) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 下一页

View My Stats