B.アレイK-着色

B.アレイK-着色

配列を指定して、

要素を染色するための要件は、要素は、同じ色が異なっている必要があり満たし、そしてすべての色は、すべてアップに使用します

#include <ビット/ STDC ++ H>
 使用して 名前空間STDを、
#define SC(X)のscanf( "%I64d"、&x)は、
#defineは長いlong int型
ベクター < INT > V [ 5005 ]。
int型の ANS [ 5005 ]; 
署名されたメイン()
{ 
    int型N、K、。
    SC(N)。
    SC(K); 
    int型 MA = 0 ;
    以下のためにint型 i = 0 ; iがn <I ++は{)
        皮下(A)。
        V [A] .push_back(I)。
        もし(V [A] .size()> K){ 
            プット(" NO" );
             戻り 0 ; 
        } 
        MA = MAX(MA、(INT )V [A] .size()); 
    } 
    int型、T = 0 ; 


    のためにINT J = 1 ; J <= kであり、j ++ のためのINT I = 1 ; iが<= 5000 ; iは++ ){
         場合(V [I] .size()> 0 ){ 
            ANS [V [i]が[ 0 ] = J; 
            V [i]を.erase(V [I]。 ))(始める; 
            T ++ ; 
        } 
        場合(NT K- == {j)を
             破ります
        } 
    } 
    プット(" YES " ); 

    以下のためにint型 i = 0 ; iがn <; iは++ ){
         場合(ANS [I] == 0 ){ 
            COUT <<(K - )<< '  ' 
        } 
        
        COUT << ANS [I] << '  ' 
    } 
}

 

おすすめ

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