1. 程式人生 > >【USACO】時鐘(BFS)

【USACO】時鐘(BFS)

考慮將如此安排在一個 3 x3 行列中的九個時鐘:

|-------|    |-------|    |-------|
|       |    |       |    |   |   |
|---O   |    |---O   |    |   O   |
|       |    |       |    |       |
|-------|    |-------|    |-------|
    A            B            C
|-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O   |    |   O   |
|   |   |    |   |   |    |   |   |
|-------|    |-------|    |-------|
    D            E            F
|-------|    |-------|    |-------|
|       |    |       |    |       |
|   O   |    |   O---|    |   O   |
|   |   |    |       |    |   |   |
|-------|    |-------|    |-------|
    G            H            I

目標要找一個最小的移動順序次將所有的指標指向12點。下面原表格列出了9種不同的旋轉指標的方法,每一種方法都叫一次移動。選擇1到9號移動方法,將會使在表格中對應的時鐘的指標順時針旋轉90度。

移動方法  受影響的時鐘 
1        ABDE  
2        ABC  
3        BCEF  
4        ADG  
5        BDEFH  
6        CFI  
7        DEGH  
8        GHI  
9        EFHI 
Example 

9 9 12          9 12 12         9 12 12          12 12 12       12 12 12 
6 6 6   5 ->    9  9  9   8->   9  9  9   4 ->   12  9  9   9-> 12 12 12 
6 3 6           6  6  6         9  9  9          12  9  9       12 12 12 

[但這可能不是正確的方法,請看下面]