7_6 帶寬(UVa140)<回溯法:最優性剪枝>

給定一個圖(V,E),其中V爲頂點的集合,E爲邊的集合,屬於VxV。給定V中元素的一種排序,那麼頂點v的帶寬定義以下:在當前給定的排序中,與v距離最遠的且與v有邊相連的頂點與v的距離。給定排序的帶寬定義爲各頂點帶寬的最大值。例如考慮以下圖:spa

此圖能夠給出多種排序,其中兩個排序圖示以下:blog

對於給出的這兩個排序,它們各結點的帶寬分別是(按排序順序):6, 6, 1, 4, 1, 1, 6, 6,排序帶寬爲6,以及5, 3, 1, 4, 3, 5, 1, 4,排序帶寬爲5。排序

寫一個程序,找出該圖的一種排序使其帶寬最小。input

Input
輸入

輸入由一系列的圖構成。每一個圖獨佔一行。一個僅包含「#」字符的一行輸入標誌整個輸入文件結束。對於每一個圖的輸入,都包含一系列由「;」隔開的記錄。每一個記錄包含一個結點名(一個大寫字母,範圍是「A」到「Z」),接着是一個「:」,而後是一些該結點的鄰居結點。圖中不會包含超過8個結點。程序

 

Output
輸出

每一個圖對應一行輸出,列出排序的結點,而後是一個箭頭(->)以及該排序的帶寬值。全部項都應由一個空格與它相鄰的項隔開。若是同一個帶寬有多種排序方法,取字母序最小的一種排序,也就是取字母表排在前面的一種排序。方法

Sample inputim

A:FB;B:GC;D:GC;F:AGH;E:HD
#

 

Sample output

 A B C F G D H E -> 3img

相關文章
相關標籤/搜索