vijosP1016 北京2008的掛鐘

2021-07-10 20:52:06 字數 757 閱讀 6774

vijosp1016 北京2008的掛鐘

【思路】

dfs。

對操作搜尋更加優秀,所以採用搜尋每乙個操作的使用次數,因為運算元為4則相當於沒有操作,所以列舉上限為3。

【**】

1 #include2 #include3 #include4

using

namespace

std;56

int op[9][9]=,

7 ,

8 ,

9 ,

10 ,

11 ,

12 ,

13 ,

14 };

15const

int maxn = 10;16

intcnt[maxn],a[maxn],tmp[maxn];

1718

void dfs(int

d) 26

bool f=true;27

for(int i=0;i<9;i++) if(tmp[i])

28if

(f)

34if(d==9) return;35

36for(int i=0;i<4;i++) 40}

4142

intmain()

Vijos P1016北京2008的掛鐘

題意 開9維的bfs,看了別人的優化方法是 用到了優先佇列,因為求的最短的操作路徑,所以用當前的步數作為優先佇列的條件,步數少的優先 include include include include include using namespace std int flag 4 4 4 4 4 4 4 ...

Vijos P1016 鐘錶問題 BFS 剪枝

vijos p1016 九個鐘錶分別有4種狀態 0點,3點,6點,9點。分別用數字表示為 0,1,2,3.9個操作分別操控著一些鐘錶,被操作的鐘錶每次順時針旋轉90 求出最小操作集 1 abde 2 abc 3 bcef 4 adg 5 bdefh 6 cfi 7 degh 8 ghi 9 efhi...

北京2008的掛鐘

題目描述 在2008北京奧運會雄偉的主會場的牆上,掛著如上圖所示的3 3的九個掛鐘 一開始指標即時針指向的位置請根據輸入資料調整 然而此次奧運會給與了大家乙個機會,去用最少的移動操作改變上面的掛鐘的時間全部為12點正 我們只考慮時針 然而每一次操作並不是任意的,我們必須按照下面給出的列表對於掛鐘進行...