HNOI2002 營業額統計

2022-06-03 04:57:18 字數 523 閱讀 5881

用treap維護,每次查詢這個數的前驅與後繼哪個和它差值更小。

由於查詢乙個數時在treap走出的路徑必定經過它的前驅與後繼,故直接在走的過程統計答案就可以了。

#include #include 

#include

using

namespace

std;

namespace

treap

;struct

node

int cmp(int v)

} *root;

void rotate(node *&t, int

d)void insert(int v, node *&t =root)

}int closest(int v, node *t = root) //

返回與v的差的絕對值最小的差值

return

ans;}}

intmain()

cout

<< tot

}

HNOI2002 營業額統計

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

HNOI 2002 營業額統計

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

HNOI2002 營業額統計

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