数据结构
magic_sheep
这个作者很懒,什么都没留下…
展开
-
BZOJ 3196 Tyvj 1730 二逼平衡树
树套树裸题,练习模板的好去处。 注意每次SpLay修改前对原串的变动。/************************************************************** Problem: 3196 User: vermouth Language: C++ Result: Accepted Time:8124 ms Memo原创 2017-02-17 22:51:01 · 260 阅读 · 0 评论 -
BZOJ 1568 [JSOI2008]Blue Mary开公司 标记永久化线段树
标记永久化线段树裸题,大体思路如下。如果当前线段完全低于插入线段,则对插入线段进行标记。 如果当前线段完全高于插入线段,则直接放弃。 其余分情况讨论...... 首先求出两条直线交点坐标,将长的线段作为当前节点的标 记,短的线段继续下放。 #include<cstdio> #include<iostream> #include<cstring> #include<cmath> using names原创 2017-02-28 21:34:14 · 293 阅读 · 0 评论 -
BZOJ 3224 普通平衡树 Trie树
本文介绍一个简短好写的数据结构,01trie树,它可以支持普通平衡树所要求所有操作,而且简单易懂。代码是在网上看的,作者不详,希望原作者注明来源。对于每个数进行二进制拆分,把拆成的01串插进Trie树中。 由于负数的二进制处理比较麻烦,所以我们不如把其补成正整数,询问时再减去即可。 其余的见代码吧,相当好理解。#include <cstdio> #define ls(x) (ch[x][0])原创 2017-03-18 21:20:33 · 789 阅读 · 1 评论 -
POJ 3171 Cleaning Shifts 线段树优化DP
题面大意: 有N个线段,每个线段可以覆盖一段区间T1-T2 花费为S,求选出几个线段使得其完全覆盖M 到E 这一区间 并要求花费最少。 复杂度要求 nlog(E)。 这道题数据比较水,不要求离散化。考虑DP f[T2] = min(f[x]) +c {T1-1<=x<T2} 整个f数列可以用一颗线段树维护,维护最小值 在这里插入代码片 ...原创 2019-07-12 16:41:29 · 99 阅读 · 0 评论