
数据结构
文章平均质量分 80
cjoilmd
这个作者很懒,什么都没留下…
展开
-
【左偏树】 poj3016
ps: 难道我天生程序就写得丑么=。=!有一个算法在我手上变慢了(⊙o⊙)… 左偏树主要优点是支持堆合并,当然,它牺牲了树的平衡,牺牲了树的平衡使得左偏树仅仅对最值的操作比较方便,对其他值的操作往往要借助lazy标记。 左偏树并不极力维护树的平衡,而是以树的左偏为代价,保证从根节点一直往右走到达“外节点”的路径长度不超过logn,这样各种操作仍然保证了log原创 2012-02-22 20:30:37 · 1760 阅读 · 0 评论 -
晒一晒咱splay的丑代码;
发现单旋splay简单易懂,清晰明了,容易调试(?,貌似标记不弄错就不会出错),所以以后平衡树都写它算了。 贴代码,万一以后找不到了=。=! 没有什么好注释的。 1,需要注意的是这里splay(i,k)的含义是指通过splay操作时的i位置的左子树的节点为k; 2,一定要注意标记的下原创 2012-02-12 10:23:38 · 1779 阅读 · 5 评论 -
【find】 字符串?树状数组~
一道吐血的字符串题。 题目大意是:给定n(na,b,问一开始给出的n个字符串中,有多少个字符串,满足它的前缀是a,后缀是b。 考场上看到题目注释了一句:字符串的公共前缀较少,所以很happy打了个猥琐方法,先把n个字符串按照字典序排序,用二分缩小枚举范围,结果,每个数据都给了一堆length(a)=1 or length(b)=1的询问(#.#).......原创 2011-10-07 14:45:08 · 693 阅读 · 0 评论 -
代码备份:动态维护半平面交/凸包
以前写的代码,怕以后找不到了,放在这里安全点。 其实没太多的技术含量,用平衡树维护,配合链表,利用增量算法的思想,注意细节,使劲写就行了。 动态维护半平面交 # include # include # include # include using namespace std;const int maxn = 100000+ 20;cons原创 2012-02-17 14:27:18 · 1386 阅读 · 0 评论 -
数形结合 + 二分凸壳3题
最近遇到了三道数形结合的题目,不同的动机都直接指向了凸包(凸壳),利用凸壳上斜率(极角)的单调性进行二分。 1 .一个在傻X那里淘到的一道数据结构题,from spoj: 维护一个数据结构,支持:序列区间加/减一个数, 求区间最大前缀和。 前面的部分是利用块状数组平衡复杂度, 最后一步需要维护: ma原创 2012-02-14 16:07:30 · 819 阅读 · 0 评论 -
【link-cut tree】
被春宵的题逼着写link-cut tree了,昨天orz了一两个小时lzn的代码之后,鼓起勇气开写了。 代码写的比较快(毕竟参考了别人的),然后就是一个晚上无尽的debug,画图把草稿本都用光了= _ =, 最后转啊转啊终于转清了。 WC 2006 tube 水管局长 题意略; 树上的问题涉及边权比涉及点权要麻烦,一般的处理方法是每个点附带原创 2012-03-19 10:54:06 · 1870 阅读 · 2 评论