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。既然已經知道了地圖,那麼東東找到妹紙就不難了,請你編乙個程式,寫出東東找到妹紙的最短路...