HNOI2002 營業額統計

2022-03-28 07:00:56 字數 1181 閱讀 1480

找不到題目了,試敲了一下感覺還是挺不錯的,學習了下別人的**,差不多能感受到他的強大。哈哈。

sl :可以說算是超級水提了,只要清楚這個資料結構就知道了。

1 #include 

2 #include 

3 #include 

4using

namespace std;

5const

int max = 100000+10;

6int top;

7struct sbt 

12 }t[max];

1314

void r_roate(int &t) 

23void l_roate(int &t) 

3233

void maintain(int &t,bool flag) 

38else

if(t[t[t[t].l].r].size>t[t[t].r].size) 

42else

return ;

43     }

44else 

48else

if(t[t[t[t].r].l].size>t[t[t].l].size) 

52else

return ;

53     }

54     maintain(t[t].l,false);

55     maintain(t[t].r,true);

56     maintain(t,false);

57     maintain(t,true);

58 }

5960

void insert(int &t,int v) 

66else 

72 }

73int pred(int t,int v) 

77if(v>t[t].key) 

82else

return pred(t[t].l,v);

83 }

84int succ(int t,int v) 

92 }

9394

int exist (int t,int v) 

100101

int main() 

119         printf("

%d\n

",ans);

120121     }

122}

HNOI2002 營業額統計

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

HNOI 2002 營業額統計

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

HNOI2002 營業額統計

傳送門 題目大意 求一段序列,小於當前元素的最大值和大於當前元素的最小值。從該元素前面的元素找。題解 建立線段樹維護或者使用雙向鍊錶.或stl水過 線段樹每次插入乙個新值,查詢大於它的最小值和小於它的最大值 雙向鍊錶有點神.我們知道排序後乙個數的前驅就是小於它的最大值 後繼就是大於它的最小值,我們將...