Week2實驗A題 化學

2021-10-03 14:40:35 字數 1499 閱讀 9866

化學很神奇,以下是烷烴基。

你的任務是甄別烷烴基的類別。

原子沒有編號方法。

輸入:輸入第一行為資料的組數t(1≤t≤200000)。每組資料有5行,每行是兩個整數a, b(1≤a,b≤6,a ≤b)

資料保證,輸入的烷烴基是以上5種之一

輸出:每組資料,輸出一行,代表烷烴基的英文名

樣例:input

21 2

2 33 4

4 55 6

1 42 3

3 44 5

5 6output

n-hexane

3-methylpentane

根據觀察得知,各個烷烴基中有不同度數(原子連線的化學鍵數)的點的個數是不同的。

做出以下統計:度數1

234n-hexane24

002-methylpentane32

103-methylpentane32

102,3-dimethylbutane40

202,2-dimethylbutane41

01由此決定用2度點的個數作為區別指標。

但是2-methylpentane和3-methylpentane仍無法區分,所以再細緻區分。3-methylpentane中度數為3

的點與兩個度數為2的點直接連線,而2-methylpentane中只連線了乙個。用此特徵得出最終判斷結

果。在輸入過程中,除了儲存節點外,還需用二維陣列儲存連線情況,同時統計不同度數的點的個數。

#include

#include

int ju[7]

[7];

//二維陣列,用於儲存連線情況

int node[10]

;//存每個點的度數 ,node[1]~node[6}

int label[10]

;int

main()

for(

int j=

1;j<=

6;j++)if

(label[2]

==4)else

if(label[2]

==2)//printf("d=%d e=%d f=%d\n",d,e,f);

if(ju[d]

[f]==

1&&ju[e]

[f]==1)

//如果度數為3的點同時與兩個度數為2的點連線

printf

("3-methylpentane\n");

else

printf

("2-methylpentane\n");

}else

if(label[2]

==0)else

if(label[2]

==1)}

return0;

}

此方法屬於暴力求解,**量也較多,還有很大提公升空間。

Week2實驗 A 化學

問題描述 有六個原子,其中原子隨意編號,給定五條原子之間相連的邊,判斷輸入結構是下圖的哪一種 思路 很顯然可以用每個原子的度來判斷,但是有兩個結構的最大度數都是3,3 methy 和 2 methy 進一步判斷發現3 methy連線了兩個度為2的原子,根據此就能區分這兩個。最初的 比較繁瑣,後來經過...

Week2實驗 A 化學 模擬

包含6個原子和5個化學鍵的烷烴基共有5種,用1 6標號6個原子,然後用一對數字a,b表示原子a和原子b之間有乙個化學鍵。給定5行a,b,判斷出它的類別,輸出其化學名稱 見下圖 原子沒有標號方法,即同乙個原子可能標號為1,也可能為2,依次類推。首先找出5種類別之間較大的區別 n 類的各原子鍵數分別為1...

A 化學(Week2 模擬)

題目敘述 化學很神奇,以下是烷烴基。假設如上圖,這個烷烴基有6個原子和5個化學鍵,6個原子分別標號1 6,然後用一對數字 a,b 表示原子a和原子b間有乙個化學鍵。這樣通過5行a,b可以描述乙個烷烴基 你的任務是甄別烷烴基的類別。原子沒有編號方法,比如 1 22 3 3 44 5 5 6和 1 32...