以hiho104為例
看著hiho裡的說明,寫了乙個這個東西,先上乙個好理解的模板
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
typedef
set::iterator sit;
const ll mod=1e9+7;
const
double eps=1e-9;
const
int inf=0x3f3f3f3f;
struct streesp[200010];
int root,cnt;
void pushup(int rt)
void rro(int rt)else root=rt;
sp[rt].fa=gf;
sp[rt].r=fa;
sp[fa].fa=rt;
pushup(fa);pushup(rt);
}void lro(int rt)else root=rt;
sp[rt].fa=gf;
sp[rt].l=fa;
sp[fa].fa=rt;
pushup(fa);pushup(rt);
}void splay(int x,int y)
else
else
if(sp[fa].r==x&&sp[gf].r==fa)
else
if(sp[fa].r==x&&sp[gf].l==fa)
else }}
}void ist(int &k,int x,int fa)
if(xelse ist(sp[k].r,x,k);
}int pre,nxt;
void fdpre(int rt,int x)
if(sp[rt].valelse
}void fdnxt(int rt,int x)
else
if(sp[rt].val>x)
else
}void del(int l,int r)
void init()
void print(int rt)
char op[2];
int main(void)
else
if(op[0]=='q')
else
//for(int i=1;i<=7;i++)printf("%d %d %d %d\n",i,sp[i].val,sp[i].l,sp[i].r);}}
return
0;}
果然還是顯得太長了,看一看大佬們的寫法,再學習一下,打算再壓一下
看一下這個大佬的講解
updated:執行效率上沒有任何區別,主要是改掉了rotate函式,然後順便改下面的函式的時候發現很多東西可以省略掉
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
typedef
set::iterator sit;
const ll mod=1e9+7;
const
double eps=1e-9;
const
int inf=0x3f3f3f3f;
struct streesp[200010];
int root,cnt;//根,節點個數
void pushup(int rt)
void ro(int rt)
void splay(int x,int y)
ro(x);
}}void ist(int &k,int x,int fa)
if(x0],x,k);
else ist(sp[k].ch[1],x,k);
}int pre,nxt;
void fdpre(int rt,int x)
if(sp[rt].val1],x);}
else
}void fdnxt(int rt,int x)
else
if(sp[rt].val>x)
else
}void del(int l,int r)
void init()
void print(int rt)
char op[2];
int main(void)
else
if(op[0]=='q')
else
// printf("%d\n",root);
// for(int i=1;i<=7;i++)printf("%d %d %d %d\n",i,sp[i].val,sp[i].ch[0],sp[i].ch[1]);}}
return
0;}
在接下來就是更新用法了。。。挖個坑吧,慢慢填 最短模板,待更新。
spfa void add int u,int v,int w bool spfa int s return true dijkstra void dijkstra int n,int v,int dist,int prev,int c maxnum maxnum dist v 0 s v 1 依次...
最短模板,待更新。
spfa void add int u,int v,int w bool spfa int s return true dijkstra void dijkstra int n,int v,int dist,int prev,int c maxnum maxnum dist v 0 s v 1 依次...
學習筆記 splay入門(更新中)
宣告 本部落格所有隨筆都參照了網路資料或其他部落格,僅為博主想加深理解而寫,如有疑問歡迎與博主討論 終於學習了 spaly splay 聽說了很久,因為dalao總是那這個開玩笑所以對它有深深的恐懼.但是學起來沒有那麼難啦,可能是因為提前學了替罪羊樹?學替罪羊樹真的是痛苦555 p3369 模板 普...