随笔分类 - 数据结构
维修数列 Splay(这可能是我写过最麻烦的题之一了。。。用平衡树维护dp。。。丧心病狂啊。。。。)
摘要:题目来源BZOJ1500 这题的思路: 1、这题的话,稍微会splay的人,一般前面四个都不是问题。。主要是最后的一个,要你在修改的同时要维护好最大字段和。。。 2、最大字段和其实就是区间合并。具体操作可以看POJ2750,这是这道题的简化版本。 3、然后这题就是三个区间合并嘛。。。慢慢讨论就好了。
阅读全文
虚树入门!世界树!
摘要:虚树,顾名思义,就是建一颗虚假的树 这个树和原树的区别就是,他只保留了一些询问的必要节点,和必要节点之间的lca。这样能让这颗虚树具有树的性质,且不改变点之间的相对位置。 然后这颗虚树的节点数最多只有询问点数*2个,这样可以大幅度降低单词询问的复杂度。然后通过树形dp来解决问题。 题目来源:BZOJ
阅读全文
字典树模板
摘要:1 struct Trie 2 { 3 const static int maxsig=26; 4 const static int maxn=500000; 5 struct node 6 { 7 int next[maxsig]; 8 int cnt; 9 }Trienode[maxn]; 10 ...
阅读全文
线段树 (区间查询最大 区间求和 区间加)带lazy
摘要:1 const int N=1e5+2; 2 3 struct Segment_tree 4 { 5 struct Node 6 { 7 int val,Max,lazy; 8 int Size,son[2]; 9 void init() 10 { 11 ...
阅读全文
浙公网安备 33010602011771号