每日一題之 hiho1778 最優子段

2021-08-21 07:12:25 字數 977 閱讀 8317

描述

給定乙個長度為 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個字...