问题定义: 给定一个长度为N的数组A,找出一个最长的单调递增子序列(不要求连续)。 这道题共3种解法。1. 动态规划 动态规划的核心是状态的定义和状态转移方程。定义lis(i),表示前i个数中以A[i]结尾的最长递增子序列的长度。可以得到以下的状态转移方程:d(i) = max(1, d(j)...
分类:
其他好文 时间:
2015-08-12 18:43:08
阅读次数:
109
Oracle不能直接设定某字段自增,需要通过建序列和触发器,实现主键的自增功能一、序列 1,建序列序列的语法格式为:CREATE SEQUENCE name //name为序列的名称[INCREMENT BY n] ...
分类:
数据库 时间:
2015-08-12 18:23:50
阅读次数:
146
题目地址:HDU 5371
题意:给你一个具有n个元素的整数序列,问你是否存在这样一个子序列,该子序列分为三部分,第一部分与第三部分相同,第一部分与第二部分对称,如果存在求最长的符合这种条件的序列。
思路:用Manacher算法来处理回文串的长度,记录下以每一个-1(Manacher算法的插入)为中心的最大回文串的长度。然后从最大的开始穷举,只要p[i]-1即能得出以数字为中心的最大回文串的长度...
分类:
编程语言 时间:
2015-08-12 16:48:58
阅读次数:
158
题意:
白板题,略去;
题解:
首先根据操作用Splay维护序列;
注意维护之后的序列应该保证是n个的;
然后就有三个数组a[i],p[i],q[i];
令f[i]表示用前面的弹珠撞击第i个弹珠的最大得分;
那么f[i]=max(0,-a[i]*p[j]+q[j]);
(0
暂时不考虑0,变形可得q[j]=a[i]*p[j]+f[i];
这显然是一个斜率...
分类:
其他好文 时间:
2015-08-12 16:46:21
阅读次数:
288
零:课程大纲:一、数据结构涵盖的内容:二、算法的基本概念:1、算法的概念: Algorithm,是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。2、算法的特性:有穷性:指令序列是有限的确定性:每条语句的含义明确,无二义性可行性:每条语句都应在有限的时间内完成输...
分类:
编程语言 时间:
2015-08-12 16:45:24
阅读次数:
140
题意:给一个长度为16的字符串,每次从里面删掉一个回文序列,求最少需要几次才能删掉所有字符思路:二进制表示每个字符的状态,那么从1个状态到另一个状态有两种转移方式,一是枚举所有合法的回文子序列,判断是否是当前状态的子状态,再转移,二是枚举当前状态的所有子状态来转移。前者最坏复杂度O(2^16*2^1...
分类:
其他好文 时间:
2015-08-12 16:37:26
阅读次数:
112
几种常用排序算法温习一、 简单排序方法1.直接插入排序基本思想:顺序地将待排序的记录按其关键码的大小插入到已排序的记录子序列的适当位置。算法代码: //直接插入排序 public static void InsertSort(SeqList seq) { ...
分类:
编程语言 时间:
2015-08-12 16:31:10
阅读次数:
176
迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Itera...
分类:
编程语言 时间:
2015-08-12 15:06:58
阅读次数:
122
题意:
现在给你一些数据输入,第一个代表的是体积,第二个代表的是它的速度。然后题目让你找到当体积递增但是速度递减时的最长的一个子序列,注意这里体积是要严格的递增的,速度则是要严格的递减的。最后要你把他们的序号输出。
思路:
是不是有点感觉像LIS问题。但是这里还是有点差别的。因为它要让你记录。
首先我们先对体积从小到大排序,然后我们对速度进行最长递减子序列的查询。
这里的记录前驱和我们上...
分类:
其他好文 时间:
2015-08-12 14:46:18
阅读次数:
130
最近我花了一个星期研究NoSQL,我有一个400万记录的MySQL速度比较慢,准备迁移到NoSQL上,因为主要是一些JSON格式的文档,本来序列化存在MySQL中的,因为看上了Erlang这个号称非常牛X的平台,挑中了CouchDB,但导...
分类:
数据库 时间:
2015-08-12 11:46:30
阅读次数:
222