Splay入門題目 HNOI2002 營業額統計

2022-05-23 18:30:10 字數 2129 閱讀 5675

這道題貌似很多中做法,我先是用multiset交了一發,然後又寫了一發splay。

multiset做法,這個其實就是二分了,只是用set來保持加入乙個元素時保持有序

1 #include 

2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include

10 #include 11 #include 12 #include 13 #include 14 #include 15

using

namespace

std;

16 typedef unsigned long

long

ull;

17 typedef long

long

ll;18

const

int inf = 0x3f3f3f3f;19

const

double eps = 1e-8

;20 multisets;

21 multiset::iterator it;

22int main(void)23

46s.insert(x);47}

48 printf("

%d\n

",ans);49}

50return0;

51 }

view code

splay

1 #include 

2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include

10 #include 11 #include 12 #include 13 #include 14 #include 15

using

namespace

std;

16 typedef unsigned long

long

ull;

17 typedef long

long

ll;18

const

int inf = 0x3f3f3f3f;19

const

double eps = 1e-8

;20 template

21 inline bool scan_d(t &ret)

2236

const

int maxn = 1e5+10;37

int fa[maxn],son[maxn][2

],key[maxn],tot,root;

3839

4041

void addnode(int &r,int father,int

k)42

4849

void rotate(int r,int

kind)

5060

void splay(int r,int

goal)

6168

else

6977

else

7882}83

}84if (goal == 0

)85 root =r;86}

87bool insert(int

k)88

97 r = son[r][k>key[r]];98}

99 addnode(son[r][k>key[r]],r,k);

100 splay(son[r][k>key[r]],0

);101

return

true

;102

}103

int get_pre(int

r)104

112int get_next(int

r)113

121int main(void

)122

142else

143151

}152 printf("

%d\n

",ans);

153}

154return0;

155 }

view code

HNOI2002 營業額統計 Splay

好久沒打過資料結構了哈.把這道題作為splay 的複習題吧,也是個板子.tiger最近被公司公升任為營業部經理,他上任後接受公司交給的第一項任務便是統計並分析公司成立以來的營業情況。tiger拿出了公司的賬本,賬本上記錄了公司成立以來每天的營業額。分析營業情況是一項相當複雜的工作。由於節假日,大減價...

HNOI2002 營業額統計

花了一天鑽研了splay,然後發現splay沒我想象的那麼難 以前都是寫sbt來著 但是splay的速度確實沒那麼快,但是真的挺好寫的 我寫的版本測了這題以後又用了一下別人的splay,發現通過這題大多數splay在750ms上下,我是688ms,說明還算是不錯的啦 啦啦啦 include incl...

HNOI 2002 營業額統計

最近開始重新學習splay樹寫的第一題,基本就是照著別人部落格改的一道題,關於splay樹的模板,感覺大牛已經把 改得很短!這道題沒什麼難度,乙個插入操作,乙個找前驅,乙個找後驅的操作。話說這題有個資料有個bug的地方,可以看連線的discuss 因為沒有push down,push up的操作,感...