st表 貓樹 堆 貪心 超級鋼琴

2021-09-26 18:26:09 字數 1161 閱讀 6639

【描述】

小z是乙個小有名氣的鋼琴家,最近c博士送給了小z一架超級鋼琴,小z希望能夠用這架鋼琴創作出世界上最美妙的**。 這架超級鋼琴可以彈奏出n個音符,編號為1至n。第i個音符的美妙度為ai,其中ai可正可負。

乙個「超級和弦」由若干個編號連續的音符組成,包含的音符個數不少於l且不多於r。我們定義超級和弦的美妙度為其包含的所有音符的美妙度之和。兩個超級和弦被認為是相同的,當且僅當這兩個超級和弦所包含的音符集合是相同的。

小z決定創作一首由k個超級和弦組成的樂曲,為了使得樂曲更加動聽,小z要求該樂曲由k個不同的超級和弦組成。我們定義一首樂曲的美妙度為其所包含的所有超級和弦的美妙度之和。小z想知道他能夠創作出來的樂曲美妙度最大值是多少。

【輸入】

輸入檔案第一行包含四個正整數n, k, l, r。其中n為音符的個數,k為樂曲所包含的超級和弦個數,l和r分別是超級和弦所包含音符個數的下限和上限。

接下來n行,每行包含乙個整數ai,表示按編號從小到大每個音符的美妙度。

【輸出】

輸出檔案只有乙個整數,表示樂曲美妙度的最大值。

【樣例輸入】

4 3 2 332

-68【樣例輸出】

11

#include

#include

#define re register

using

namespace std;

const

int n=

1.1e6+5

;int n,m,a,b,c,len=

1,sum[n]

,lo[n]

;inline

intred()

namespace cat

inline

intquery

(int l,

int r)

void

pre()}

using

namespace cat;

struct node};

priority_queueq;

void

push

(int l,

int r,

int pos1));

}long

long ans=0;

intmain()

cout<"\n"

;}

線段樹 樹狀陣列 ST表 模板

區間修改 區間求和 logn const int n 1e5 5 int a n namespace seg c n 2 void pushdown int k,int l,int r void pushup int k l,r是總區間 left,right是查詢區間 long long query...

合併果子 哈夫曼樹 貪心 堆

在乙個果園裡,達達已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。達達決定把所有的果子合成一堆。每一次合併,達達可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。達達在合併果子時總共消耗的體力等於每次合併所耗體力之和。...

通用程式設計 雜湊表 搜尋樹 堆

o 1 的時間複雜度 python中的字典dict就是雜湊表。enumerate list 生成乙個有序列,且可迭代的字典 zip nums list dict1 將列表轉換成字典,並計數 for v in nums dict1 v dict1.get v,0 1 tems把字典變為可以遍歷的鍵值對...