冬アルゴリズムベースキャンプ4サブセグメント製品オフ2020頭の牛

https://ac.nowcoder.com/acm/contest/3005/C

問題の意味

  所定の長さn列の数A1、A2、...、AN 、最大の998244353モジュロ残りのk個の連続サブセグメントの製品の長さを求めます。

問題の解決策

  足をエミュレート。

コード

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
const  int型のmod = 998244353 ;
長い 長い ARR [ 200005 ]。
長い 長い INV(長い 長い長い 長いB)
{ 
    長い 長い ANS = 1 一方、(b)は、
    { 
        もし、(B&1)ANS = ANS *%のMOD。
        B / = 2 =(* A)%のMOD。
    } 
    リターン ANS。
}
 INT )(主
{ 
    長い 長い ANS = - 1、TEMP = 1、CNT = 0 、I、N、K。
    scanf関数(" %LLD%LLD "、&​​N&K)。
    以下のための(iは= 0、I <N; I ++)のscanf(" %のLLD "、およびARR [I])。
    以下のために(私は= 0 ; I <kは、iが++ 
    { 
        場合(ARR [I] == 0)CNT ++ 他の温度= TEMP * ARR [I]%のMOD。
    } 
    のための(iは= 0 ; I <NK; I ++  
    { 
        場合ANS =(CNT!)MAX(ANS、温度); 
        
        場合(ARR [I] == 0)cnt--  TEMP = TEMP * INV(ARR [i]は、mod- 2)%のMOD。

        もし(ARR [I + K] == 0)CNT ++ 他の温度= TEMP *編曲:[I + K]%のMOD。
    } 
    のprintf(" %のLLD " 、ANS)。
    システム(一時停止)。
    リターン 0 ; 
}

おすすめ

転載: www.cnblogs.com/VividBinGo/p/12308463.html