B.一意性

B.一意性

削除されたユニークなサブセグメントの各要素を満たすための要件を除去するための連続サブセグメントのシーケンス所与

ほとんどの子供のための長さ

列挙開始点、長さの二つの分子

再びユニークでソートすることを忘れないでください

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#defineは長いlong int型
 の#define SIが署名
 の#define ENDLを'\ n'
 の#define SC(X)のscanf( "%I64d"、&x)は、
#define読み出す(A)のための(INT I = 1; I <= N; iは++)scanf関数を( "%I64d"、&A [I])。
#define P対<整数、整数>
 の#define Fiの第一
 の#define SE第二
 の#define OT(X)COUT << X << 'の\ n';
#define MAXN 10000 + 5
 INT A [MAXN]。
int型、N、T、X、Y、B。
ベクトル < int型 > V。
INT MID)
{ 
   v.clear()。
   以下のためにint型 i = 1 ; iが<= N; iは++ ){
      場合(iは< l)をv.push_backを([I])。
     それ以外の 場合(I> 中旬)v.push_back(A [i])と、
     他の I = ミッド; 
   } 
   ソート(v.begin()、v.end())。
   INT、N =ユニーク(v.begin()、v.end()) - v.begin()。
   戻り N == )(v.sizeします。
} 
()主符号付き
{ 
    SC(N)。
    以下のためにint型 i = 1 ; iが<= N; iは++ ){ 
        SC([I])。
        v.push_back([I])。
    } 
    ソート(v.begin()、v.end())。
    INT X =ユニーク(v.begin()、v.end()) - v.begin()。
 
    もし(x == N){ 
        COUT << 0 << ' の\ n ' ;
        リターン 0 ; 
    } 
    INT LEN = N。
    以下のためにint型 i = 1 ; iが<= N; iは++ ){
         int型 L = I、R = I + len- 1 もし(チェック(I、R)!)続けます一方、(L + 1 <R){
             int型ミッド=(L + R)/ 2;
            もし(チェック(I、MID)){ 
                R = ミッド。
            }  L =ミッド+ 1 
        } 
        であれば(チェック(I、L)){ 
            LEN =分(L-I + 1 、LEN)。
        } そう であれば(チェック(I、R)){ 
            LEN =分(R-I + 1 、LEN)。
        } 
    } 
    COUT << lenの<< ' の\ n ' ; 
}

 

おすすめ

転載: www.cnblogs.com/liulex/p/11411202.html