POJ 1611(互いに素セット)

POJ1611

タイトル:入力の複数のセット、パーソナルNを入力してm個のグループを入力します。次に、第m行の各入力K、kは個人のグループを表し、kは一組の次のメンバの数を表します。

番号付き0人が病気であってもよく、人々の病気のグループはまた、多くの人は、おそらく病気であるか、病気、出力のn人かもしれあり

アイデア:互いに素セットラインと、人々のこのグループに病気の人にそこに宣告することができる場合は特に、セットを構成し、そのリーダーが、各入力の最初の人である各グループで、彼らは頭のボスになってみましょう0。

最後に、頭に0を出力しますどのように多くの人々の個人のnについて、横断(ヘッド:、(x)の検索ボス:事前に[X])

書式#include <iostreamの> 
の#include <cmath> 
の#include <cstdioを> 
する#include <CStringの> 
の#include < 文字列 > 
の#include <マップ> 
書式#include <iomanip> 
書式#include <アルゴリズム> 
書式#include <キュー> 
の#include <スタック> 
#include < セット > 
の#include <ベクトル>
 // CONST int型MAXN = 1E5 + 5。
#defineは長い長いっ
{(-1,11,11- b)はLLのGCDをリターン?B GCD(B、%の; B)} 
(-1,11,11- b)は{LLのLCM 戻り、(/ GCDを

#define MAX INT_MAXの
 に#define(I、a、b)は(;;私は= Bの<++ I私は= INT)のためFOR
 の#defineバグはcout << "------------- - "<< ENDL
 使用して 名前空間はstdを、
int型 STU [ 31000 ]プリ[ 31000 ]。
INTのN、M、K、一つ、二つ。
INT(検索INT X)
{ 
    場合(PRE [X] == x)をリターン  Xと、
    戻り検索(予備[X])。
} 
ボイド BESAME(int型のx、int型のY)
{ 
    int型 = FXを(x)を探します。
    int型 FY = (y)を見つけます。
    もし [FY] =前(!のfx = fyの)FX。
} 
ボイドclearr()
{ 
    ためint型 i = 0 ; iがn <; ++ I)
        事前[I] = I。
} 
int型のmain()
{ 

    ながら1 
    { 
        CIN >> N >> M。
        もし(N == 0 && m個の== 0 ブレーク
        clearr(); 
        一方、(M-- 
        { 
            CIN >> K >> 1。
            以下のためのint型 I = 1 iはkは<; ++ I)
            { 
                CIN >> 2。
                もし(検索(2)== 0 
                { 
                    BESAME(0 、1)。
                } 
                BESAME(一つ、二つ)。
            } 

        } 
        int型 ANS = 0 
        (I、FOR 0、N- 1 
        { 
            int型 HHH = (i)を探します。
            もし(HHH == 0)++ ANS ; 
        }
        コスト << ANS <<endl; 

    } 
}

 

おすすめ

転載: www.cnblogs.com/jrfr/p/11280114.html
おすすめ