時間限制: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...