洛谷P2082 區間覆蓋 加強版 (珂朵莉樹)

2022-02-27 20:52:39 字數 795 閱讀 5997

傳送門

雖然是黃題而且還是一波離散就能解決的東西

然而珂朵莉樹還是很好用

相當於一開始區間全為0,然後每一次區間賦值,問最後總權值

珂朵莉樹搞一搞就好了

1

//minamoto

2 #include

3 #include4 #include5

#define ll long long

6#define it set::iterator

7using std::set;8

#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?eof:*p1++)

9char buf[1

<<21],*p1=buf,*p2=buf;

10ll read()

20struct

node

23 inline bool

operator

<(const node &b)const

24

25 };set

s;26

it split(ll pos)

33void

assign(ll l,ll r)

37ll sum(ll l,ll r)

42int

main()

48 printf("

%lld\n

",sum(0

,1e17));

49return0;

50 }

P2082 區間覆蓋 加強版 貪心

解析 剛開始自己寫的 我對l遞增排列,l相等按r遞增排列。直接逐個判斷,相交,或者不相交。但讓每乙個區間只和它前乙個區間發生關係,顯然是錯誤的。比如 1,5 2,4 3,6 答案應該是6,但是我這個 輸出的是7,原因是第三個區間 3,6 與 2,4 發生了關係,但是 1,5 已經把 2,4 覆蓋了。...

洛谷 P6033 合併果子 加強版

p6033 合併果子 加強版 題目背景 本題除 資料範圍與約定 外與 p1090 完 全 一 致。題目描述 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看...

洛谷P1368 均分紙牌(加強版)

有 n 堆紙牌,編號分別為 1,2,n。每堆上有若干張,紙牌總數必為 n 的倍數。可以在任一堆上取1張紙牌,然後移動。移牌規則為 在編號為 1 堆上取的紙牌,能移到編號為 2和n 的堆上 在編號為 n 的堆上取的紙牌,能移到編號為 n 1和1 的堆上 其他堆上取的紙牌,可以移到相鄰左邊或右邊的堆上。...