随笔分类 -  算法|数据结构

ACM 算法讲解
摘要:类别:二叉排序树 空间效率:O(n) 时间效率:O(log n)内完成插入、查找、删除操作 创造者:Daniel Sleator和Robert Tarjan 优点:每次查询会调整树的结构,使被查询频率高的条目更靠近树根。 注:所有图片来自wiki。 转载自:http://blog.csdn.net/ 阅读全文
posted @ 2017-07-19 17:28 Code-dream 阅读(314) 评论(0) 推荐(0) 编辑
摘要:平衡树 简介: 平衡二叉树(Balanced Binary Tree)具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。 最小二叉平衡树的节点的公式如下 F(n)=F( 阅读全文
posted @ 2017-07-17 08:41 Code-dream 阅读(363) 评论(0) 推荐(0) 编辑
摘要:bzoj 1556 点这里打开题目 题目是求 a^2 求和; 原问题可以转化为:两个人在玩这个东西,问这两个人弄出来的序列相同的有多少种情况,操作方式不同即为一种不同的情况。 就这个问题,参考大佬的DP思想。 DP[t][i][j] 分别表示 两人同时第t次取小球,第一人在上面管道取了i个,第二个人 阅读全文
posted @ 2017-07-06 10:32 Code-dream 阅读(172) 评论(0) 推荐(0) 编辑
摘要:题目链接 题目就不多说了。 本题目,可以用dfs序+线段树做:题目给定了一棵树,树上节点告诉了权值。我们可以先将这棵树进行dfs将一棵树变成线性结构:如图 变成这样后,然后就可以用线段树。 操作1:也就是将某两个点+a; 操作2:区间更新 操作3:查询起始区间到某点的和 我们建线段树,需要统计 +, 阅读全文
posted @ 2017-07-04 21:23 Code-dream 阅读(240) 评论(0) 推荐(0) 编辑
摘要:后缀例题 转自--后缀数组 处理字符串的有力工具 例1 :最长公共前缀 问题描述:给定一个字符串,询问某两个后缀的最长公共前缀。 算法分析:问题可以转化为:height数组的区间最小值。所以加上一个 RMQ+倍增算法模板。可以O(1)查询。 题目+代码:略。 例2:可重叠最长重复子串 问题描述:给定 阅读全文
posted @ 2017-02-21 15:18 Code-dream 阅读(331) 评论(0) 推荐(0) 编辑
摘要:对于这个算法,是求区间里面的最大最小值,一般思想在区间for循环一遍找,但是访问区间次数多的话,且区间长度太长,这样时间复杂度都会太长,我认为就是做了一个预处理使得访问时间大大减短。 怎么才能够得到区间的最值? 所以,如预处理区间的最大值,最小值也是类似的。用一个F二维数组F[ i ][ j ] 表 阅读全文
posted @ 2016-03-22 12:05 Code-dream 阅读(202) 评论(0) 推荐(0) 编辑
摘要:背包问题九讲 目录 第一讲 01背包问题 第二讲 完全背包问题 第三讲 多重背包问题 第四讲 混合三种背包问题 第五讲 二维费用的背包问题 第六讲 分组的背包问题 第七讲 有依赖的背包问题 第八讲 泛化物品 第九讲 背包问题问法的变化 附录一:USACO中的背包问题 附录二:背包问题的搜索解法 前言 阅读全文
posted @ 2016-03-16 21:05 Code-dream 阅读(18795) 评论(0) 推荐(2) 编辑