11 2012 档案
摘要:问题:n个数相加,怎样使得相加的次数最少。不允许使用乘法 分析:1 使用树形结构,规约,需要log(n)次规约。 规约求和要求n=2^i。 2 对于不是2^i次方的数,需要转化。转化为二进制数。例如,11011111。 使用一个数组记录每个位(2^0,2^1,2^2.。。。)对应的值。...
阅读全文
摘要:题目: 任意给定一字符串, 要求在这字符串任意位置[之前之后, 内部] 增加一些字符, 形成回文 并且增加的字符总数量最少 算法分析:DP。从两边往中间挤,三种情况: 1左边添加字符与右边匹配 2右边添加字符与左边匹配 3当两边元素相等时,都往中间移动一步。 每一步选择min...
阅读全文
摘要:"世人都以为,时间就像一条平静流逝的大河,永远只向着那天的彼端奔流不息, 但我可以告诉你,我见过时间的真面目,其实他们都错了.时间就象是狂风中的汪洋大海.或许, 你想知道我会是谁.请跟我来,我会告诉你一个故事.一个你从未听说过的故事....." ...
阅读全文
摘要:线性时间选择算法 Selection in worst-case linear time 附代码 线性时间内在n个元素中选择第i小的元素,递归算法如下: 终止条件:n=1时,返回的即是i小元素。 算法步骤: step1:将n个元素每5个一组,分成n/5(上界)组。 ...
阅读全文
摘要:题目:请使用4条线段连接以下9个点 。 。 。 。 。 。 。 。 。 答案; o ━━o ━o━━┃\ /┃ \ /o o o ┃ \ /┃ /\o o o ┃ / \┃ /┃/...
阅读全文
摘要:感觉基本思想就是hash+桶划分。 比较重要的是桶划分(数据量较大,适合topN问题),位图(数据量较小使用),堆(数据量较小),字典树(数据量大,种类少) 类型包括 可以一次读入内存的,不可以一次读入内存的。 可以一次读入内存的:位图(数据量较小使用),堆(数据量较小),字典树(数...
阅读全文
摘要:一 定义 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键 事实上,关系模型不允许表格包含有重复记录。所以,一个表格里字段或者...
阅读全文
摘要:题目:.一个整数数组a,长度为n,将其分为m份,使各份的和相等,求m的最大值 比如{3,2,4,3,6} 可以分成{3,2,4,3,6} m=1; {3,6}{2,4,3} m=2 {3,3}{2,4}{6} m=3 所以m的最大值为3 解答:找了半天没有更好的解法,以下两个思路供...
阅读全文
摘要:本帖忽悠成分较高 来源:http://www.2-hokyii.com/xufei96/article/details/5995778 1 站群 通过流量广告来赚钱。 1、什么是站群,站群怎么获取流量? 所谓站群,就是短期内建立大...
阅读全文
摘要:一 概念 卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。 卡特兰数前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 3...
阅读全文
摘要:求割点,并且求出假如去掉这个割点后,整个图被分为了几部分 求割点主要是利用dfs遍历树。 dfn[x]记录x实际在树中深度,low[x]记录x及其子树在树中回边可到达的最浅深度。 因为low数组的定义,就是low[u] = min(dfn[u], low[w], dfn[v]) ...
阅读全文
摘要:一 概念 函数式编程(英语:Functional programming),又称泛函编程,是一种编程范型,它将电脑运算视为数学上的函数计算,并且避免状态以及可变数据。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(引数)和输出...
阅读全文
摘要:题目 输入一个正整数数N,输出所有和为N连续正整数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。 一种运用数学规律的解法 假定有k个连续的正整数和为N,其中连续序列的第一个数为x,则有x+(x+1)+(x+2)+.....
阅读全文
摘要:最近需要速成java,制定一个学习计划。 1基本语法 一篇博文搞定:http://blog.csdn.net/crazyhacking/article/details/8144622 2多线程 3网络通信socket编程 non block socket 4 设计模式 不会的可以查阅...
阅读全文
摘要:如何重载增量运算符 ++ 和 -- 运算符++和—有前置和后置两种形式,如果不区分前置和后置,则使用operator++( )或operator--( )即可;否则,要使用operator++( )或operator--( )来重载前置运算符,使用operator++(int)或oper...
阅读全文
摘要:这道题做起来简单,但是证明比较麻烦。自己的证明很可能有错误,还望指正。 一 是否有环 (1)用追击法,一个指针每次前进1步,另一个指针每次前进2步。 设链表中不包括环的长度为L1,环的长度为L2. 假设走s步之后相交,等价于 式(1)(s-L1)mod L2 = (2s-L1)mod L...
阅读全文
摘要:一 判断交点: 遍历到最后,看为节点是否相同 二 第一个交点:如果 length(list1)>length(list2),则链表1 从length(list1)-length(list2)处开始遍历,链表2从开头开始遍历。比较每一个是否相等。第一个相等的就是结果。 length...
阅读全文
摘要:进程间通信主要包括管道, 系统IPC(包括消息队列,信号量,共享存储), SOCKET. 在WIN32中,同步机制主要有以下几种: (1)事件(Event); (2)信号量(semaphore); (3)互斥量(mutex); (4)临界区(Critical section)。 ...
阅读全文
摘要:概念 红黑树是AVL树的变种,具体定义如下:红黑树也是一棵二叉查找树,要满足一下性质 (1)每个节点或者是黑色,或者是红色。 (2)根节点是黑色。 (3)每个叶子节点(NIL)是黑色。 (4)如果一个节点是红色的,则它的子节点必须是黑色的。 (5)从一个节点到该节点的子孙节点的所有路...
阅读全文
摘要:一 二叉排序树/二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。 ...
阅读全文
摘要:第二部分、后缀树 2.1、后缀树的定义 后缀树(Suffix tree)是一种数据结构,能快速解决很多关于字符串的问题。后缀树的概念最早由Weiner 于1973年提出,既而由McCreight 在1976年和Ukkonen在1992年和1995年加以改进完善。 后缀,...
阅读全文
摘要:第一部分、Trie树 1.1、什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希...
阅读全文
摘要:第一种解法来自:http://blog.csdn.net/tianshuai11/article/details/7797897, 大概时间复杂度为O(n^2logn) [cpp] view plaincopy /* Author: Mcdragon Date:...
阅读全文
摘要:源于这两篇文章: http://blog.csdn.net/ggggiqnypgjg/article/details/6645824 http://zhuhongcheng.wordpress.com/2009/08/02/a-simple-linear-time-algorithm-for-...
阅读全文
摘要:一 单例模式: 定义: 单例模式的意思就是只有一个实例。单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 单例模式的要点有三个: 一是某个类只能有一个实例; 二是它必须自行创建这个实例; 三是它必须自行向整个系统提供这个实例。 举例,在计算...
阅读全文
摘要:用途 倒排文件(倒排索引),索引对象是文档或者文档集合中的单词等,用来存储这些单词在一个文档或者一组文档中的存储位置,是对文档或者文档集合的一种最常用的索引机制。 编辑本段原理 Lucene倒排索引原理 Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件...
阅读全文
摘要:本文适合于已经有c/c++基础的同学看 一 基本知识 1 数据类型 类似于c/c++ 对于long类型常量书写时,要在数字后面加上L或者l。0L 对于float类型常量书写时,要在小数点后面加上F或者f。0.0F 对于double类型常量书写时,要在小数点后面加上D或者d。...
阅读全文
摘要:重复继承 下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。 下图是一个继承图,我们重载了父类的f()函数。 其类继承的源代码如下所示。其中,每个类都有两个变量,一个是整形(4字节),一个是字符(1字节),而且还有自己的虚函数,自己ove...
阅读全文
摘要:目录(?)[-] 前言对象的影响因素知识复习单一的一般继承多重继承 前言 07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。...
阅读全文
摘要:[-] 前言虚函数表一般继承(无虚函数覆盖)一般继承(有虚函数覆盖)多重继承(无虚函数覆盖)多重继承(有虚函数覆盖)安全性结束语附录一:VC中查看虚函数表附录 二:例程 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例...
阅读全文