ブルーブリッジカップインターバル数(暴力や互いに素セット(?)でも第7号

問題の説明

暁明は、これらの日は、このような奇妙で興味深い質問について考えてきました。

どのように多くの偶数1の範囲でNの完全な配列を行うには?ここでは、偶数の範囲の定義がされます:

間隔なら[L、R]の全ての要素(R要素に、すなわち、この構成でL-TH)における「連続」シリーズR-L + 1の長さを取得するために昇順後、この間隔偶数呼ば範囲。

Nは非常に若かったときに、暁明はすぐに答えを計算することができますが、Nが大きくなると、問題はそれほど単純ではありません、今ボブはあなたの助けを必要とするとき。

入力形式

最初の行は、N(1 <= N <= 50000)整数正であり、全体構成の大きさを表します。

2行目は、特定のNデジタル完全な配列を表すN個の異なる数のPI(1 <= Piの<= N)です。

出力フォーマット

出力異なるセクション偶数の数を表す整数。

サンプル入力1
4
3 2 4 1
サンプル出力1
7
サンプル入力2
5
2 3 4 5 1
サンプル出力2
9
参照ラベルは、インターネット検索は、問題への解決策を見つけたかの書き込み...にばらばらのセット...ポジティブまた、溶液2333非常に賢いではないのか分からない、長い時間のようなばらばらのセットです
注目直接暴力はO(n ^ 2)スイープアレイ、[L、R]は連続したシーケンスで構成することができれば、最大間隔マイナス最小間隔はRL、スイープ更新時間に対する回答に等しい場合のみ。
#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
int型のn;
長い 長い = ANS 0をint型の FA [ 50005 ];
int型 [ 50005 ];
int型のmain()
{ 
    CINを >> N。
    int型私は、jは、
    ための式(I = 1 ; I <= N; I ++ 
    { 
        scanf関数(" %のD "、および[I])。
    } 
    のためには、式(I = 1 ; I <= N; I ++ 
    { 
        int型 Mmaxを=0、MMIN = 99999 (J = I; J <= nであり、j ++ 
        { 
            Mmaxを = MAX(Mmaxを、[j]を)。
            MMIN = 分(MMIN、[J])。
            もし(JI == Mmaxの-MMIN)ANS ++ ; 
        } 
    } 
    COUT << ANS。
    リターン 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/lipoicyclic/p/12468123.html