splay基本操作
using namespace std;
struct splayt[maxn];
int newp;
void rotate(int x)
void splay_s(int x,int destnation)
rotate(x);//無論共不共線都要旋x
} if(destnation==0)root=x;//如果根節點是0那更新根節點
}void find(x)
splay_s(x,0);//把x旋上去
}int next_n(int x,bool flag)
return u;//返回前驅或者後繼的位置
}void insert(int x)
if(u)
else
t[u].ch[0]=t[u].ch[1]=0;//新加的點是葉子結點沒有兒子
t[u].fa=fa;//把父親更新
t[u].data=x;//更新data
t[u].num=1;//更新num
t[u].size=1;//更新size
} splay_s(u,0);//把該結點旋上去
}void delete_d(int x)
else t[suc_x].ch[0]=0;//否則直接刪去這個點
}
splay模板基本操作
splay模板指標實現 splay中序遍歷維護原序列下標的順序,翻轉後這個順序會改變,但是splay中第x個數代表變換後序列中第x個數 這樣就可以直接查詢變換後的序列 重在 文藝平衡樹 include include include include define inf 0x3f3f3f3f usi...
splay區間操作
splaytree 區間操作 區間修改 題目 題目大意 給出一組數字,區間整體增加乙個值,區間查詢和 思路 很經典的區間操作的題目,因此思路也不用自己想,都是各路以例題的形式給出 之前用線段數寫的,用了 1938ms 今天用 splay 寫,耗時 2875.說一下splay 操作的幾個要點 其實核心...
Splay樹簡單操作
前幾天剛剛自學了一下splay,發現思路真簡單實現起來好麻煩 先貼一下頭檔案 include include include include define ll long long define rg register 卡常 define il inline 再卡常 define un unsign...