A 化學(Week2 模擬)

2021-10-03 11:43:14 字數 1772 閱讀 4535

題目敘述:

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

假設如上圖,這個烷烴基有6個原子和5個化學鍵,6個原子分別標號1~6,然後用一對數字 a,b 表示原子a和原子b間有乙個化學鍵。這樣通過5行a,b可以描述乙個烷烴基

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

原子沒有編號方法,比如

1 22 3

3 44 5

5 6和

1 32 3

2 44 5

5 6是同一種,本質上就是一條鏈,編號其實是沒有關係的,可以在紙上畫畫就懂了input輸入第一行為資料的組數t(1≤t≤200000)。每組資料有5行,每行是兩個整數a, b(1≤a,b≤6,a ≤b)

資料保證,輸入的烷烴基是以上5種之一output每組資料,輸出一行,代表烷烴基的英文名example

input

21 2

2 33 4

4 55 6

1 42 3

3 44 5

5 6output

n-hexane

3-methylpentane

解題思路:

題目中說與碳鍵邊的編號無關,故可以從c原子連線鍵的數量下手:

1、n-hexane:四個c原子連線兩個鍵

2、2,3-dimethybutane:兩個c原子連線三個鍵,0個c原子連線2個鍵

3、2,2-dimethybutane:乙個c原子連線四個鍵

4、2-methylpentane、3-methylpentane:兩個c原子連線兩個鍵,乙個c原子連線三個鍵:

對於第四種情況,分析連線三個鍵的c原子,可以發現對於2-methylpentane,周圍的c原子連線鍵數量總和是4,而對於3-methylpentane,其周圍的c原子連線鍵數量總和是5。

因此,首先通過乙個二維矩陣將輸入鍵的左右兩個頂點儲存下來,並利用陣列記錄每乙個點連線的鍵的數量。遍歷陣列,通過c原子連線鍵的數量進行上述分類,當是第四種情況時,遍歷矩陣中對應有三個鍵的c原子,找到與其相鄰的其他c原子,並計算鍵的數量總和,判斷是2-methylpentane還是3-methylpentane。

**實現:

#include

using

namespace std;

intmain()

int index1=0;

for(

int i=

1;i<=

6;i++)}

else

if(record[i]==2

) nums++

;else

if(record[i]==4

) numt++;}

if(numt>

0&&nums==

1&&numf==

0) cout<<

"2,2-dimethylbutane"

<

if(nums==

4&&numf==

0&&numt==

0) cout<<

"n-hexane"

<

if(nums==

2&&numf==

1&&numt==0)

if(nums==

0&&numf==

2&&numt==

0) cout<<

"2,3-dimethylbutane"

<

}return0;

}

Week2實驗 A 化學 模擬

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

Week2實驗 A 化學

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

Week2實驗A題 化學

化學很神奇,以下是烷烴基。你的任務是甄別烷烴基的類別。原子沒有編號方法。輸入 輸入第一行為資料的組數t 1 t 200000 每組資料有5行,每行是兩個整數a,b 1 a,b 6,a b 資料保證,輸入的烷烴基是以上5種之一 輸出 每組資料,輸出一行,代表烷烴基的英文名 樣例 input 21 2 ...