ケーキカットモノトーンキューluoguのP1714

単調なキュー愚かな質問。

$最大(sumv_ {I} -sumv_ {J})、[IM、I-1] $でjは\:$ I $は回答終了を検討します

($ Sumv_ {I} $プレフィックスと)

わずかに実際に係合し、これは固定されている$のsumv_ {I} $を発見しました。

私たちは(sumv_ {J})$が可能$分を維持する必要があります。

単調なキューの最適化モーメント、各服用最初のチームがすることができます。
 

コード:

書式#include <cstdioを> 
する#include <両端キュー> 
の#include <アルゴリズム> 
std名前空間を使用しました。
const int型MAXN = 500000 + 3; 
const int型INF = -100000000。
長い長いsumv [MAXN]。
両端キュー<整数> Q; 
INTメイン()
{ 
    //freopen("in.txt","r",stdin)。
    INTのN、M、ANS = INF。
    scanf関数( "%d個の%のD"、&N、&M)。
    {(; iが<= N I ++ iは1 = INT)のために
        INT W。
        scanf関数( "%のD"、&W)。
        sumv [I] = sumv [I-1] + W。
    } 
    {(; iが<= N I ++ I = 1 INT)ため
        INT CUR = I- M。
        しばらく(!Q.empty()&& Q.front()<CUR)Q.pop_front(); 
        (しばらく!Q.empty()&&
        Q.push_back(I); 
        ANS = MAX(ANS、H)。
    } 
    のprintf( "%dの"、ANS)。
    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/guangheli/p/11041541.html