シャイロックと彼のガールフレンド(

問題の意味

n個の宝石の数、i番目の宝石の値であること、宝石の値は2,3,4であり、I + 1、...、N + 1、

染色にこれらのジュエリーは、ジュエリーの価格を作ることは、他の素因数の宝石であるときに、異なる色の2つの宝石

最低限必要な色数、およびプロトコルを染色する出力色の数

n∈[1,1e5]

説明

二部グラフ、脇全て素数、他方の側の係合の数、その結果、2色のみの最大

一つの色のエッジは、エッジの二種類の必要が​​ある場合に二部グラフだけでなく、必要な場合

エッジ合成数、時間無限大のない合成数が存在する場合には、あります

即ちときのn> = 3、合成数が存在しなければならない場合。

1の#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3  CONST  INT N = 1E5 + 10 4  INT P [N]、CNT。
5  ブール値ST [N]。
6  ボイド get_primes(int型N){
 7      ためintは iは= 2、I <= N; I ++ ){
 8          であれば(ST [I]!)P [CNT ++] = I。
9          INT J = 0 ; P [j]が<= N / I; J ++ ){
 10              ST [P [j] * I] = 11              もし(I%のP [j] == 0ブレーク12          }
 13      }
 14  }
 15  int型のmain(){
 16      INT N。
17      CIN >> N。
18      get_primes(N + 1 )。
19      であれば(N> 2)プット(" 2 " )。
20の     他のプット(" 1 " );
21  
22      のためにINT iが= 2、I <= N + 1 ; I ++){
 23          であれば(ST [i])と
 24              COUT << ' 2 ' << '  ' 25          他の coutの<< ' 1 ' << '  ' ;
26      }
 27 }

 

おすすめ

転載: www.cnblogs.com/hhyx/p/12602690.html