題目鏈結
題目描述
小c是個雲南中醫學院的大一新生,在某個星期二,他的高數老師扔給了他乙個問題。
讓他在1天的時間內給出答案。
但是小c不會這問題,現在他來請教你。
請你幫他解決這個問題。
有n個數,每個數有權值。
數學老師定義了區間價值為區間和乘上區間內的最小值。
現在要你找出有最大區間價值的區間是什麼,並輸出區間價值。
輸入每個輸入檔案只包含單組資料。
第一行乙個整數n。(1 <= n <= 100000)
第二行n個整數a_1,a_2,…,a_n。(0 <= a_i <= 1000000)
輸出第一行輸出乙個整數,表示最大的區間價值。
第二行輸出兩個整數,表示區間的起點和終點。
保證答案唯一。
樣例輸入
610 1 9 4 5 9
樣例輸出
1083 6
把每個數當作最小值,找尋它的左右區間,最後遍歷一遍輸出結果,具體實現看**
#include
#include
#include
using namespace std;
const
int n =
100005
;typedef
long
long ll;
ll n,ans,t,l,r,a[n]
,sum[n]
,fward[n]
,bward[n]
;//注意開long long 型別
stack
> stk;
//> >中間有個空格
intmain()
for(
int i =
1;i <= n;i++
) stk.
push()
;}while
(!stk.
empty()
) stk.
pop();
for(
int i = n;i;i--
) stk.
push()
;}ans =-1
;// 資料中含有0,所以最小值設為-1
for(
int i =
1;i <= n;i++)}
printf
("%lld\n%lld %lld\n"
,ans,l,r)
;return0;
}
問題 J 小C的數學問題
題目描述 小c是個雲南中醫學院的大一新生,在某個星期二,他的高數老師扔給了他乙個問題。讓他在1天的時間內給出答案。但是小c不會這問題,現在他來請教你。請你幫他解決這個問題。有n個數,每個數有權值。數學老師定義了區間價值為區間和乘上區間內的最小值。現在要你找出有最大區間價值的區間是什麼,並輸出區間價值...
小C的數學問題
思路 思路就是把a i 作為最小值,然後去用兩個指標去分別尋找a i 左側比a i 小的那個位置的後乙個位置以及右側比a i 大的那個位置的前乙個位置。然後我就開始根據這個思路去求解問題,但是沒有進行優化直接進行的,時間超時。includeusing namespace std const int ...
小P的數學問題
晚上,小p喜歡在寢室裡乙個個靜靜的學習或者思考,享受自由自在的單身生活。他總是能從所學的知識散發出奇妙的思維。今天他想到了乙個簡單的階乘問題,0!1 1!1 2!1 2 2 3!1 2 3 6 4!1 2 3 4 24 5!1 2 3 4 5 120 如果 n 1000000000,那麼n的階乘會是...