#include #include/*首先,我們考慮用長度為9的陣列表示表盤的狀態以及調表的操作,終止的條件是表盤狀態陣列所有元素模4為0;
如果一種操作使用超過4次,那麼相當於沒有操作,所以運算元組需要多出一位記錄造作使用的次數,乙個操作最多使用3次
特別是我們注意到這個題沒有問操作的順序,所以操作的前後順序其實是沒有影響的;
這樣其實是對進行了哪些操作,操作了多少次進行列舉,也就是對乙個9*4的矩陣進行列舉;並求矩陣行元素和的最小值,
一共列舉4的9次方次
*/short clocks[9],min=1000,operations[9][9],count[9],best[9
];
void change()//
這個函式的作用是按照count調整clocks,並修改min,再把clocks改回去
if(flag)
for(i=0;i<9;i++)
for(j=0;j<9;j++)
clocks[j]-=(operations[i][j]*count[i]);
} int
main()
} for(i=0;i<9;i++)
for(j=0;j)
printf(
"%d
",i+1
);
return
0;
}
Openjudge2814 撥鐘問題
題目 有9個時鐘,排成乙個3 3的矩陣。現在需要用最少的移動,將9個時鐘的指標都撥到12點的位置。共允許有9種不同的移動。如下表所示,每個移動會將若干個時鐘的指標沿順時針方向撥動90度。移動 影響的時鐘 1 abde 2 abc 3 bcef 4 adg 5 bdefh 6 cfi 7 degh 8...
OpenJ Bailian 2814 撥鐘問題
總時間限制 1000ms 記憶體限制 65536kb 描述有9個時鐘,排成乙個3 3的矩陣。o o o a b c o o o d e f o o o g h i 圖 1 現在需要用最少的移動,將9個時鐘的指標都撥到12點的位置。共允許有9種不同的移動。如下表所示,每個移動會將若干個時鐘的指標沿順時...
POJ 1166 The Clocks 撥鐘問題
有9個時鐘,排成乙個3 3的矩陣。現在需要用最少的移動,將9個時鐘的指標都撥到12點的位置。共允許有9種不同的移動。如下表所示,每個移動會將若干個時鐘的指標沿順時針方向撥動90度。移動 影響的時鐘 1 abde 2 abc 3 bcef 4 adg 5 bdefh 6 cfi 7 degh 8 gh...