数据结构
文章平均质量分 65
榴莲泡芙2018
随便记录一些东西
微信公众号:榴莲泡芙
展开
-
初识splay tree (一)
本来是要做hihocoder 1034 毁灭者问题,发现朴素的数据结构无法满足该题目如此BT的要求,随查了一下,splay tree貌似可以解决,于是目标转到了学习splay tree上。 学习splay tree 的主要参考资料: 《伸展树的基本操作与应用》– 杨思雨 《运用伸展树解决数列维护问题》– By Crash 《Splaying a Search Tree in Preorde原创 2015-05-09 03:29:16 · 519 阅读 · 0 评论 -
初识splay tree (三)
以 [NOI 2005 维护序列][1]为例,说明一下具体的splay tree 的代码编写和实现技巧。 翻转真的是一个BT的操作~~ 一步一步来,首先,结构体定义:typedef struct node{ struct node *pre,*ch[2]; int size,value,sums,maxs,maxl,maxr; bo原创 2015-05-11 17:25:43 · 635 阅读 · 0 评论 -
初识splay tree ( hihocoder #1034 : 毁灭者问题 题解)
题目连接题目描述时间限制:10000ms 单点时限:1000ms 内存限制:256MB 解题思路:按照每个时间点的操作直接暴力显然会TLE,现在不按照时间点进行考虑,而是考虑每个魔法单位都在哪些时间点被抽取了,这样每个魔法单位都有一组被抽取的时间间隔,同时,每个魔法单位都有最大上限M和恢复速度R,考虑某一个魔法单位A的一组时间间隔,按大小分类:大于等于 (M+R-1)/R 的:意味着抽取原创 2015-06-03 14:30:33 · 2108 阅读 · 0 评论 -
hihocoder #1036 : Trie图
第一次接触Trie图,参考了两个文档: 《Trie图的构建、活用与改进-PPT》,里面有一个例子可以参考。 《hihocoder#1036 : Trie图》,题目本身对算法讲解的很详细。 trie图是借助了KMP、后缀的思想,对Trie树做了改进,具体还是以题目本身的讲解为主了。 建图过程最主要的有两步:计算当前节点的后缀节点。为当前节点补全后缀指针。代码#include <iostr原创 2015-06-12 12:21:08 · 506 阅读 · 0 评论 -
一道有趣的面试:Trie 树及其改进
0x00 导言Trie 树是一种常见的数据结构,用以解决在给定单词在字典中是否存在的问题,而且支持动态的增删词典内容,常见的实现结构如下:struct node{ bool is_word ; struct node * [26];}; 对于任意词典,查找给定单词的效率为O(1),比hash还要快。hash虽然也是O(1),但是hash不能保证没有冲突,即使预先...原创 2018-08-20 00:09:09 · 609 阅读 · 0 评论