質問の意味:
無向グラフを考えると、有機物の構造式を示し、有機物は、リストのどれを聞いてこれです。
ソリューション:
同型列挙フルポイントに対応する配列が、ほとんど唯一のこの質問度をソートするポイント後の比較、プラスメチル特文缶のための位置を分析します。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 typedefの長い 長いLL。 符号なしのtypedef 長い 長いULL。 typedefの長い 長いLL。 typedefのペア < int型、LL> P; const int型 M = 1E2 + 5 。 CONST LLのMOD = 1E9 + 7 。 constの LL LINF = 0x3f3f3f3f3f3f3f3f 。 #define LS(RT << 1) の#define RSが(RT << 1 | 1) ベクトル < INT > [M]まし。 ベクター< 整数 > VE2。 INT [] [ 6 ] = {{ 1、1、2、2、2、2 }、{ 1、1、1、2、2、3 }、{ 1、1、1、1、3、3 } 、{ 1、1、1、1、2、4 }}。 int型のフラグ。 ブールISV [M]。 int型ANS; ボイド DFS(int型のx、int型工程) { ISV [X] = 1 。 ANS = MAX(ANS、ステップ)。 以下のために(int型 i = 0 ; iは、VEの<[X] .size(); iは++ ) { 場合(!ISV [VEの[X] [I]]) { DFS(VEの[X] [i]を、ステップ + 1 ) ; } } } int型(メイン) { int型_。 scanf関数(" %d個"、&_); ながら(_-- ) { ため(int型 i = 1 ; iが= < 6は、iは++ ) { [I] .clear(VE)。 } のために(int型 i = 1 ; iは<= 5 ; I ++ ) { int型のL、R。 scanf関数(" %dの%のD "、&L&R)。 VEの[L] .push_back(R) VEの[R] .push_back(L)。 } ve2.clear()。 以下のための(int型I = 1 ; 私は= < 6。私は++ ) { ve2.push_back)((.size [I] VE)。 } ソート(ve2.begin()、ve2.end())。 以下のために(int型 i = 0 ; iは< 4 ; I ++ ) { フラグ = I。 用(INT J = 0 ; J < 6 ; J ++ ) { 場合(!VE2 [J] = [I] [J]) { フラグ = 5 。 破ります; } } もし(!フラグ= 5 ) ブレーク。 } であれば(フラグ== 0 ) { のprintf(" n-ヘキサンを\ n " ); } そう であれば(フラグ== 1 ) { ANS = 0 。 memset(ISV、0、はsizeof ISV)。 以下のために(int型 = Iを1 ; I <= 6; I ++ ) { 場合(Veを[I] .size()== 3 ) { DFS(I、0 ); } } もし(ANS == 3 ) のprintf(" 2-メチルペンタンする\ n " ); 他 のprintf(" 3-メチルペンタンの\ nを" ); } そう であれば(フラグ== 2 ) { のprintf(" 2,3-ジメチルブタンを\ n " ); } そう であれば(フラグ== 3 ) { のprintf(" 2,2-ジメチルする\ n " ); } } }