FJNUOJ 1053 線段樹or前字尾預處理

2021-09-01 13:34:26 字數 545 閱讀 3974

時間限制: 1 sec  記憶體限制: 128 mb

提交: 18  解決: 5

[提交] [狀態] [討論版] [命題人:外部匯入]

題目描述

輸入有多組輸入樣例,第一行兩個正整數n,m(n<=m)分別表示黃主任他們的人數和第五排的座位數(n<=20,m<=1e6),

第二行輸入m個整數,第i個數表示第i個座位的觀影值ai(-1e9<=ai<=1e9).

輸出輸出一行整數表示黃主任和他的ji友們能夠得到的最大觀影值的和。

樣例輸入

3 4

1 2 3 4

3 42 3 -1 5

樣例輸出

9

10

題意明了

題解:解法一:線段樹維護當前區間最小值,區間外的最大值,然後將最小值最大值替換比較答案,為了不超過記憶體限制,預處理字首和。 複雜度o(nlog(n))

解法二:預處理區間1~i 的字首最大值和區間 n ~ i 的字尾最大值,o(n)(n最大20)求出區間和以及最小值,然後比較更新,複雜度o(n*(區間長度))

線段樹 02 構建線段樹

public inte ce merger 不能再縮小的基本問題是 對treeindex指向的節點的情況進行討論 public class segmenttree 在treeindex的位置建立表示區間 l.r 的線段樹 private void buildsegmenttree int treei...

線段樹 01 線段樹基礎

物理上 public class segmenttree public int getsize public e get int index 返回完全二叉樹的陣列表示中,乙個索引所表示的元素的左孩子節點的索引 private int leftchild int index 返回完全二叉樹的陣列表示中...

線段樹和zkw線段樹

好啦,我們就開始說說線段樹吧 線段樹是個支援區間操作和查詢的東東,平時的話還是蠻實用的 下面以最基本的區間加以及查詢區間和為例 線段樹顧名思義就是棵樹嘛,葉子節點是每個基本點,它們所對應的父親就是它們的和,具體如下圖 但是對於這樣的線段樹來說,操作所需的時間是遠達不到我們的要求的 會被t 因為我們會...