- 博客(11)
- 资源 (3)
- 收藏
- 关注
原创 编程珠玑 15.2 短语
查找字符串中最长重复字符串,方法:后缀数组 + 快排代码如下:/* * pp_15_2.cpp * * Created on: 2012-5-31 * Author: ict */#include #include #include #include using namespace std;#define MAXN 10000//qsort比较函
2012-05-31 17:32:54 915
原创 编程珠玑 15.1 单词
编程珠玑单词中,需要统计《圣经》一书中,出现频率最高的单词,这是典型的TOP K问题,采用经典的Hash + 堆方法解决,代码如下:#include #include #include #include #include #include #define HASHLEN 101#define WORDLEN 30#define MAX 100000#define DOM
2012-05-31 14:49:09 581
原创 编程之美 3.9 前序和中序得到后序
原理比较简单,首先找到前序的第一个元素,寻找在中序中间的位置,这样中序输出被分成两部分,那么这前一部分属于左子树,后面部分属于右子树,如下所示:a b d c e fd b a e c f分解成为b dd b和c e fe c f然后对这两个部分采用类似的方法求解,最后得到二叉树的描述,代码如下:/* * bop_3_9.cpp * *
2012-05-25 11:21:33 802
原创 编程之美3.7,队列中的最大值操作问题
解法三中,采用两个栈的方式建立一个队列,其中stack支持的方法有:1,pop()2,push()3,max()其中在push()和pop()过程中需要动态修改最大值,其中采用link2NextMaxItem[]数组保存当前元素的上一级最大元素,这里需要理解其中的原理,为什么这样可以?其中必须理解stack的特性,先进后出的性质,这样书上的操作是正确的,每次进来的数值,只和已经
2012-05-24 21:57:08 857
原创 编程之美3.3, 计算字符串的相似度
给出两个字符串,通过三种操作:1,修改一个字符2,增加一个字符3,删除一个字符一次操作,表示两个字符串的距离加1,通过三种操作,使得两个字符串最终相等,求解最少操作数,从而求得两个字符串的相似度,相似度表示为1/(距离 + 1)。比如abcdefg和abcdef距离为1(通过abcdefg删除g一个操作),这样相似度为1/2 = 0.5。写出程序。问题分析:在求
2012-05-24 20:58:04 1044
原创 链表原地置反
/* * reverse_list.cpp * * Created on: 2012-5-22 * Author: ict */#include #include #include using namespace std;//定义结构体typedef struct NODE{ int data; struct NODE *next;}*PNode, NO
2012-05-22 16:58:54 2027 6
转载 netlink代码示例
在用户和内核通信过程中,netlink非常方便,优势如下:1,双向2,异步3,多播代码如下:内核模块net_link.c代码:#include #include #include #include #include #include #define NETLINK_TEST 21struct sock *nl_sk = NULL;EXPORT_SYMBO
2012-05-16 11:08:23 2467 1
原创 并查集
并查集在解决图的连通性非常高效,hdu1232采用并查集,可以很快解决,代码如下:/* * hdu1232.cpp * * Created on: 2012-5-10 * Author: ict */#include#include#include#include#includeusing namespace std;#define CLR(arr, wh
2012-05-10 18:01:39 521
原创 字典树、字典树代码
字典树概念:字典树,顾名思义,就是一种对字母等字符串进行处理的一种特殊数据结构。说白了,就是二十六叉树。定义一个头指针,每次从头指针开始操作。字典树分析:对于统计词频方式,也可以采用hash一类方法,但采用字典树更好,字典树还可以对前缀进行统计,但在hash中无法实现。如果在极端情况下,每个节点下面都有26个字母,那么占用的空间为26^n,其中n表示单词的平均长度。但对于单
2012-05-10 11:09:14 1528
原创 带权值的二分图匹配 KM算法
1,如果二分图不是完全二分图,我们通过添加无用路径(最大匹配中,路径权值为0)和顶点使之成为完全二分图;2,使用KM算法求解,KM算法核心需要理解feasible vertex labeling和equality subgraph概念,在equality subgraph中寻找最大匹配(采用匈牙利算法),如果最大匹配正好为完全匹配,根据KM理论,这个完全匹配就是带权值的最大匹配;如果在当前的e
2012-05-09 10:15:56 3609 2
原创 匈牙利算法简介
具体解释可以看百度百科以及组合数学书本,其中组合数学书本讲解比较详细。直接贴代码吧:#include #include int n1, n2, m, ans; int result[101]; //记录V2中的点匹配的点的编号 bool state [101]; //记录V2中的每个点是否被搜索过 bool data[101][101];//邻接矩阵 true代表有
2012-05-07 23:49:34 805
cc2431定位原理手册
2009-12-07
cc2430中文使用手册
2009-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人