- 博客(7)
- 收藏
- 关注
原创 Treap 树
Treap树堆 是一种 随机平衡二叉树。相对于正正规规的AVL树,倒是灵活了许多。Treap 也有旋转模式,但是只有单选转,而且Treap的旋转,怎么旋转,该不该旋转完全是随机化的,这样子在大大减少了编码量的同时,相对也把效率给提了上去。在最差情况下也比最差情况下的朴素 BST 好代码参考 《Data Structure and Algorithm Analysis in C》
2015-12-22 19:20:22 318
原创 poj 1416
题目大意: 将一串数字分成若干个部分 ( 例如12346) 求其中和不超过数字 n (例50) 的最大值。 比如说 12346 可以分成 12+34+6 = 52 1+2+34+6 = 43 其中43满足,52不满足,因为不允许超过。注意: 1、123 可以拆成 1+23 12+3 ,但13+2是不允许的。 21+3,3
2015-12-14 19:51:22 288
原创 选择客栈 noip2011
在openjudge上做的题目,原来是2011年的=====。题目:丽江河边有 n 家很有特色的客栈,客栈按照其位置顺序从 1 到n 编号。每家客栈都按照某一种色调进行装饰(总共 k 种,用整数 0 ~ k-1 表示),且每家客栈都设有一家咖啡店,每家咖啡店均有各自的最低消费。两位游客一起去丽江旅游,他们喜欢相同的色调,又想尝试两个不同的客栈,因此决定分别住在色调相
2015-12-12 21:11:14 841
原创 LIS (最长上升字序列) nlgn 解法
LIS, 一道比较经典的动态规划题目。对于长为n的序列 F[n] = max{F[k] + 1,F[n] | if arr[k] 时间复杂度 O(N^2) 线性空间。最近看到网上的一种 nlgn的解法,深受启发:思路是这样的: 令一个数组 pos[x] 来表示上升序列中第i个数字最小是多少。 从 arr[i] ~arr[n] 遍
2015-12-07 19:27:03 624
原创 字符串类DP Align
【问题描述】考虑两个字符串右对齐的最佳解法。例如,有一个右对齐方案中字符串是AADDEFGGHC和ADCDEGH。AAD_DEFGGHCADCDE__GH_每一个数值匹配的位置值2分,一段连续的空格值-1分。所以总分是匹配点的2倍减去连续空格的段数,在上述给定的例子中,6个位置(A,D,D,E,G,H)匹配,三段空格,所以得分2*6+(-1)*3=9,注意,我们并不
2015-12-06 20:24:54 1302
转载 数字划分类 dp
转载自http://www.cnblogs.com/wanghetao/archive/2013/11/25/3442192.html 整数划分 --- 一个老生长谈的问题:描述整数划分是一个经典的问题。请写一个程序,完成以下要求。 输入每组输入是两个整数n和k。(1 输出对于输入的 n,k;第一行: 将n划分成若干正整数
2015-12-06 20:14:48 691
原创 网络流 poj 1698
Alice 要拍电影,每天智能拍一部电影,现在有几部电影让他去拍,每部电影都有要求至少拍的天数和必须要在前几个礼拜拍完。 网络流的题目: 将这几个礼拜的天数全部拆成点,将所有点和这天能拍的所有电影连一条流量为1的边,原点与天数相连边权为1,所有电影与汇点相连,流量为电影所需天数。 注意:在加边的时候别忘了,如果now_week>week[
2015-12-01 21:36:31 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人