程式設計思維與實踐 Week2 實驗 A 化學

2021-10-03 13:39:51 字數 1782 閱讀 1697

a-化學

題目描述:

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

假設如上圖,這個烷烴基有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:

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

sample input:

21 2

2 33 4

4 55 6

1 42 3

3 44 5

5 6sample output:

n-hexane

3-methylpentane

思路:

烷烴基的結構式是很明顯的圖結構,五個同分異構體每個原子所有的化學鍵有一定區別,即不同的化學式有著不同的度,通過觀察發現,n-hexane各原子的度數為,2,2-dimethylbutane為,2,3-dimethylbutane為,2-methylpentane和3-methylpentane均為,因此用鄰接矩陣記錄每個同分異構體原子之間的關係,即節點的度數,前三種具有特殊性,直接得出,而後兩種區別在於度數為3的節點所連線的原子中,2-methylpentane連線兩個度數為1的節點,3-methylpentane連線乙個度數為1的節點,然後用深搜判斷即可。

總結:

本題目要弄清楚同分異構體的結構特點,找到節點之間的不同,然後利用圖的相關知識解決,對於題幹的理解與觀察十分重要。

**:

#include

#include

using

namespace std;

struct node

;node k[7]

;bool

compare

(node a,node b)

int matrix[7]

[7];

intmain

(int argc,

char

const

*ar**)

for(

int i=

1,a,b;i<=

5;i++

)sort

(k+1

,k+7

,compare);if

(k[1

].x==4)

cout<<

"2,2-dimethylbutane"

<

else

if(k[1]

.x==3)

}else

cout<<

"n-hexane"

<

}return0;

}

程式設計思維與實踐 Week2 作業

b題 倒水問題 bfs 東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。input 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,...

程式設計思維與實踐 Week2 作業

b pour water 東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路線。輸入 輸入是乙個5 5的二維陣列,僅由0 1兩數字組成,表示...

程式設計思維與實踐 Week2 作業2道

這周作業主要是對廣度優先搜尋bfs的應用,包括求最短路徑的迷宮問題及隱式圖問題 倒水問題。東東有一張地圖,想通過地圖找到妹紙。地圖顯示,0表示可以走,1表示不可以走,左上角是入口,右下角是妹紙,這兩個位置保證為0。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路...