入门指南
文章平均质量分 76
数学常识
DSFZ最低水平
展开
-
指针入门级指南
开篇语 似乎大家在OI中都并不是很喜欢使用指针,因为这个东西关于玄学,还会莫名RE 但是好多高手很喜欢用指针啊 如果您想学习指针的入门级使用方法,这篇文章可能比较适合你 笔者会把他在OI中使用指针的经验都写在这里(笔者水平 普及 什么是指针 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。原创 2018-02-01 21:24:33 · 514 阅读 · 4 评论 -
非旋Treap維護普通平衡樹的基本操作
前言 其實我寫過旋轉的Treap,我也寫過可以旋轉不停的Splay 但是我發現Splay克我,所以我學了一下神奇的非旋Treap 效率並不低,效率較低的部分在insert,要調用4次O(log2n)O(log2n)O(log_{2}{n})的函數 其他操作或1次或2次 表現較好在我們學習之前我們可能需要一些關於旋轉Treap的知識 帶旋轉Treap 本文並不是講述帶旋轉Treap的文...原创 2018-02-11 13:34:56 · 417 阅读 · 0 评论 -
非旋Treap的區間翻轉(文藝平衡樹)
前言 在學習這一節之前顯然要先會非旋Treap的基本操作 Split和MergeSplit和MergeSplit和Merge就可以了 正題 首先,我們用Treap的中序遍曆來代表現在的數列 顯然翻轉區間相當於交換子樹 同時值得注意的是堆的性質不會影響到樹的中序遍曆(這個自己要想一想) 我們在之前強調Merge(a,b)Merge(a,b)Merge(a,b)的大小問題,在這裡只要...原创 2018-02-11 15:40:28 · 462 阅读 · 3 评论 -
Treap永不旋轉!!![維修數列]
前言 Splay是會轉的的好,Treap是不會轉的妙,我們不用轉也能實現神奇的操作 在這裡比較複雜的是插入區間的操作,這是Treap沒有嘗試過的 如何O(n)O(n)O(n)構造Treap? Splay可以遞歸構造,但是Treap有key的問題,顯然不能那樣構造 那怎麼構造呢? 我們利用棧來解決這個問題 我們將每次構造出來的節點放到棧裏,當我們再次要構造一個新節點時,我們和棧頂節...原创 2018-02-11 23:15:21 · 524 阅读 · 0 评论 -
非旋Treap練習題(維護父指針)ZJOI2006書架
這道題沒什麼好說的, 比較特殊的一點就是要維護父指針來查詢比指定點小的節點個數 具體看一下代碼就清楚了 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define MAXN 80010 using namespace std; inlin...原创 2018-02-13 11:37:03 · 248 阅读 · 1 评论