靜態 Splay Tree 模板

2021-07-16 09:25:28 字數 578 閱讀 9331

複習一下splay,沒想到乙個簡單的模板寫了乙個多小時。。。

注:該模板比較短,所以可能會有些難以理解。該結構體包含插入與查詢操作。

#include

#include

#include

using

namespace

std;

const

int maxn = 100010;

struct splay_tree

void rotate(int p, bool t)

void splay(int x)

bool f = x==ch[p][0], f1 = p==ch[fa[p]][0], f2 = p==ch[fa[p]][1];

rotate(f?f1?p:x:f2?p:x, f);

rotate(x, f1);

}r = x;

}void insert(int x)

p = ch[p][x>=data[p]];

}splay(pn);

}void find(int x)

};

模板篇 伸展樹Splay Tree(此坑待填)

已填坑 請移步 splay?伸展。splay tree?伸展樹。遇事不決問度娘。從前,有種東西叫bst binary search tree,二叉查詢樹 各位都聽說過吧?此bst能較為高效的查詢資料。所以是查詢樹嘛 而它卻有乙個致命的缺點!常常會被卡成一條鏈。不是鏈的時候樹也會很高。效率很難維持住o...

splay tree旋轉操作 hdu 1890

很神奇的旋轉操作。目前沒看到其他資料結構能實現這個功能。平衡樹不好處理區間操作,線段樹很難旋轉。splay tree搞這個就很簡單了。下面用的這個模板跑了700ms,好慢,估計是刪除操作太費時了,是時候去找找其他更快的模板了。include include include include using...

靜態鄰接表模板

在做圖有關的題目,在一些情況下鄰接矩陣耗費空間較大 動態開闢的鄰接表又耗時耗記憶體,這時候你可能需要乙個靜態鄰接表!靜態鄰接表在各種圖的演算法當中也是有一席之地的,比如利用堆優化的dij演算法求最短路 spfa等等 下面給出我的靜態鄰接表模板 includeusing namespace std c...