コンテナで商品を出荷するとき、私たちは同じ容器の中にいくつかの互換性のない商品を梱包しないように注意する必要があり、あるいは我々は深刻なトラブルに自分自身を取得する可能性があります。例えば、酸化剤は、(氧化剂)(易燃液体)可燃性の液体が充填されてはならない、またはそれは、爆発を引き起こす可能性があります。
今、あなたは互換性のない商品の長いリストを与えている、と品物のいくつかのリストが出荷されます。あなたは、リスト内のすべての商品は同じ容器に詰めることができるかどうか言うことになっています。
入力仕様:
各入力ファイルには、1つのテストケースが含まれています。各場合について、最初の行は、2つの正の整数与える N(≤)、互換性のない商品の対の数、および M(≤)、商品のリストの数を出荷します。
次に、2つのブロックが続きます。最初のブロックは互換性のない商品のN個の対を含み、各対は、行を占めます。2つ目は、各リストは、次の形式の行を占め、商品のMリストが出荷されるように含まれています。
K G[1] G[2] ... G[K]
ここで、 K
(≤)商品の数である G[i]
のは、商品のIDです。それはシンプルにするために、それぞれの良いは5桁のID番号で表されます。行のすべての数字はスペースで区切られます。
出力仕様:
各出荷リストについては、行で印刷 Yes
リストには互換性のない商品が存在しない場合、または No
そうでない場合。
サンプル入力:
6 3
20001 20002
20003 20004
20005 20006
20003 20001
20005 20004
20004 20006
4 00001 20004 00002 20003
5 98823 20002 20003 20006 10010
3 12345 67890 23333
サンプル出力:
No
Yes
Yes
Soulution:
同じソリューションペアのトピックを探してアップ直和:
誰が列数を与え、その後、何でもペアリングがあるかどうかを決定、2つのペアであることを言った、と!!
段階の数が少ない、直接行列、V [A] [B]が右である場合、反復列の数は、外観の一組が存在するかどうか
大きな大きさの通常オーダー
使用unordered_map <int型、ベクトル<int型>>各番号の配偶者を格納マップ
V [XXX] = TRUE;次いでデジタルプレゼンスブールINT [10000] = {偽}を通過番号の最初の一連のマーキング。
そして、彼の配偶者の全てが、列数、すなわち、V [X] ==真実でないかを決定するために、各カウントの列数を反復処理?
1の#include <iostreamの> 2の#include <ベクトル> 3の#include <unordered_map> 4 使用して 名前空間をSTD。 5 INT メイン() 6 { 7 整数N、M、K、B。 8 CIN >> N >> M。 9 unordered_map < int型、ベクトル< int型 >> thePair。 10 のために(INT iは= 0 ; I <N ++ I) 11 { 12 CIN >> B。 13 thePair [A] .push_back(B)。 14 thePair [B] .push_back()。 15 } 16 ながら(M-- ) 17 { 18 CIN >> K。 19 ベクター< INT > TEMP(K); 20 unordered_map < int型、ブール > NUMS。 21 ブールフラグ= 真。 22 のために(INT iは= 0 ; I <K; ++ I) 23 { 24 CIN >> TEMP [I]。 25 NUMS [TEMP [I] = 真。 26 } 27 のために(INT iが= 0 ; iが<K &&フラグ; ++ i)は、 28 のために(AUTO:thePair [TEMP [I]) 29 であれば(NUMS [A] == 真) 30 フラグ= 偽。 31 COUT <<(?フラグが" はい":" いいえ")<< ENDL。 32 } 33 リターン 0 。 34 }