C. Ehabと特別彩色問題

リンク:https://codeforces.com/contest/1174/problem/C

質問の意味:

あなたは、整数を与えられている  n個のn。すべての整数のための  I Iから  2N nは、正の整数割り当てる  A iは、次の条件が成立するような愛。

  • 整数の任意のペアに対して  I J と(i、j)は、  I iおよび  jは jは互いに素であり、  I jは AJ≠愛。
  • 全ての極大値  I AIが最小化されるべきである(すなわち、可能な限り小さいです)。

整数のペアが呼び出された  互いに素  その場合  最大公約数が  ある  1 1。

アイデア:

ふるい法、指数は素数である新たな価値を与え、その後、同じ値の彼の倍数を与えています。

コード:

#include <ビット/ STDC ++ H> 

名前空間STDを使用して、

typedefの長い長いLL。
const int型MAXN = 3E5 + 10。
const int型MOD = 1E9 + 7。
N INT、M、K、T。

[MAXN] int型。

メインINT()
{ 
    CIN >> N。
    int型CNT = 0、POS = 0; 
    以下のために(INT I = 2; iが<= N; iは++)
    { 
        IF([I] = 0!)
            続けます。
// coutの<< I <<てendl; 
        [I] = ++ POS。
        CNT ++; 
        int型J = 2 * I。
        一方、(j <= N)
        { 
            [J] = POS。
            J + = I; 
            CNT ++; 
        } 
//もし(CNT> = N-1)
//ブレーク; 
    }
    以下のために(INT I = 2; iが<= N; iは++)
        COUT << [I] << ''。
    coutの<<てendl; 

    0を返します。
}

  

おすすめ

転載: www.cnblogs.com/YDDDD/p/10972867.html