描述
給定乙個長度為 n 的序列 ai 和兩個整數 a, b,要求你找一對數l, r,要求1 ≤ l ≤ r 且a×(ai+ai+1+…+ar)+b 最大
輸入 第一行三個整數 n, a, b
第二行 n 個整數,第 i 個整數表示 ai
1 ≤ n ≤ 106
-106 ≤ a, b, ai ≤ 106
輸出 輸出最大的a×(ai+ai+1+…+ar)+b
樣例解釋
選擇 (1,1) 或者 (4,4) 都可以
樣例輸入
4 2 3
0 -2 -2 0
樣例輸出
3思路:
最大子段和得變形,主要考慮到係數a的符號,有兩種情況,1. 如果是
+ +
的話,直接求最大子段和。2. 如果是
−' role="presentation">−
−的話,就把陣列的元素取反,再求最大子段和,最後再對答案取反。
#include
#include
#include
using
namespace
std;
const
int maxn = 1e6+5;
long
long a[maxn];
long
long b[maxn];
int main()
else
if (ntmp > 0)
else
nres = max(nres,ntmp);
pres = max(pres,ptmp);
}if (a >= 0)
cout
<< a*pres+b << endl;
else
cout
<< -a*nres+b << endl;
return
0;}
每日一題之 hiho1744 hohahola
描述 有一種叫作hohahola的飲料,售價是x元一瓶。小hi非常喜歡這種飲料,但是他現在身無分文。不過小hi有n張優惠券,買hohahola時每瓶最多使用一張優惠券,可以使該瓶 減少y元。y x 同時優惠券可以 小hi每 一張優惠券可以獲得z元。請你幫小hi計算通過 若干優惠券,他最多可以買多少瓶...
每日一題之 hiho1304 24點
週末,小hi和小ho都在家待著。在收拾完房間時,小ho偶然發現了一副撲克,於是兩人考慮用這副撲克來打發時間。小ho 玩點什麼好呢?小hi 兩個人啊,不如來玩24點怎麼樣,不靠運氣就靠實力的遊戲。小ho 好啊,好啊。經過若干局遊戲之後 小ho 小hi,你說如果要寫個程式來玩24點會不會很複雜啊?小hi...
每日一題之 hiho197 逆序單詞
描述 在英文中有很多逆序的單詞,比如dog和god,evil和live等等。現在給出乙份包含n個單詞的單詞表,其中每個單詞只出現一次,請你找出其中有多少對逆序單詞。輸入 第1行 1個整數,n,表示單詞數量。2 n 50,000。第2.n 1行 每行1個單詞,只包含小寫字母,每個單詞長度不超過16個字...