#10856: 給不會這題的朋友一點想法


a5083 (assassin刺客大師)

學校 : 新北市立板橋高級中學
編號 : 28347
來源 : [140.116.138.99]
最後登入時間 :
2017-06-27 17:13:56
b343. 11518 - Dominos 2 -- UVa11518 | From: [140.123.56.163] | 發表日期 : 2016-04-13 21:26

假設現在看這篇文章的朋友都已經知道dfs bfs了

那相信各位現在遇到的問題就是 adjacency matrix不夠大 

畢竟最多有10000個點,這樣代表矩陣必須為10000*10000

怎麼解決矩陣太大的問題呢

那就是用adjacency lists

我們可以做一個資料結構

其內容是

struct data

{

     int index;

     struct data*next;

}

 

以測資

1
3 2 1
1 2
2 3
2
為例

 

node[1]可以用linked list 指到node2

代表節點1可以連到節點2。但注意這是單向邊,所以不代表節點2可以連到節點1

 

同理

node[2]可以用linked list 指到node3

代表節點2可以連到節點3

 

最後推倒節點2可以使哪些骨牌倒下,就用dfs或bfs即可輕鬆解決

我覺得我的表達方式可能有點差,請見諒

 

 
ZeroJudge Forum