6 8 區間最值

2021-09-24 05:45:31 字數 875 閱讀 9735

時間限制:3秒

空間限制:131072k

給定乙個陣列序列, 需要求選出乙個區間, 使得該區間是所有區間中經過如下計算的值最大的乙個:

區間中的最小數 * 區間所有數的和最後程式輸出經過計算後的最大值即可,不需要輸出具體的區間。如給定序列 [6 2 1]則根據上述公式, 可得到所有可以選定各個區間的計算值:

[6] = 6 * 6 = 36;

[2] = 2 * 2 = 4;

[1] = 1 * 1 = 1;

[6,2] = 2 * 8 = 16;

[2,1] = 1 * 3 = 3;

[6, 2, 1] = 1 * 9 = 9;

從上述計算可見選定區間 [6] ,計算值為 36, 則程式輸出為 36。

區間內的所有數字都在[0, 100]的範圍內;

輸入描述:

第一行輸入陣列序列長度n,第二行輸入陣列序列。

對於 50%的資料, 1 <= n <= 10000;

對於 100%的資料, 1 <= n <= 500000;

輸出描述:

輸出陣列經過計算後的最大值。

輸入例子1:

36 2 1

輸出例子1:

當每個數作為區間裡最小值確定的時候,要想讓乘積越大,和必須越多,因此左右尋找,確定這個數作為區間最小值的最大範圍。

">using namespace std;

int main()

for(int i=0;i=0 && a[j]>=a[i])

j=i+1;

while(j=a[i])

int tem=a[i]*sum;

if(tem>max)

}cout<}

hunnu11460 區間求最值(線段樹模板)

區間求最值 time limit 3000ms,special time limit 7500ms,memory limit 32768kb total submit users 83,accepted users 60 problem 11460 no special judgement prob...

樹狀陣列入門及例題題解(三) 區間最值

當會用樹狀陣列求區間和了之後 將陣列的意義稍微改變 將 稍作修改 便可以得到用樹狀陣列求區間最值的 本篇部落格對於求區間最值 以求區間最大值為例 讀者可以讀完之後 嘗試寫一寫求區間最小值的 在以下的討論中 a i 代表原區間的元素 c i 代表樹狀陣列求區間字首和的元素 h i 代表求區間最大值的元...

區間最值問題

實驗任務 已知乙個有 n 個數序列 a i 在序列 a 中的區間 l,r 中的最小值為 a p 求 a p a l a l 1 a r 的最大值為多少?資料輸入 第一行是乙個整數 n 第二行為 n 個整數對應 a i 對於 50 資料 1 n 5000 對於 100 資料 1 n 100 000 1...