OpenJ Bailian 2814 撥鐘問題

2022-06-12 11:00:10 字數 1729 閱讀 1256

總時間限制: 

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種不同的移動。如下表所示,每個移動會將若干個時鐘的指標沿順時針方向撥動90度。

移動    影響的時鐘

1 abde

2 abc

3 bcef

4 adg

5 bdefh

6 cfi

7 degh

8 ghi

9 efhi

輸入

9個整數,表示各時鐘指標的起始位置,相鄰兩個整數之間用單個空格隔開。其中,0=12點、1=3點、2=6點、3=9點。

輸出輸出乙個最短的移動序列,使得9個時鐘的指標都指向12點。按照移動的序號從小到大輸出結果。相鄰兩個整數之間用單個空格隔開。

樣例輸入

3 3 0 

2 2 2

2 1 2

樣例輸出

4 5 8 9 

解題思路:9重迴圈列舉

1 #include 2

3using

namespace

std;45

6int

main()749

}50}51

52for (int i = 1; i <= 9; ++i)

53for (int j = 1; j <= result[i]; ++j)

54 cout << i << '';

5556

return0;

57 }

281 鋸齒迭代器

題目描述 給出兩個一維的向量,請你實現乙個迭代器,交替返回它們中間的元素。示例 輸入 v1 1,2 v2 3,4,5,6 輸出 1,3,2,4,5,6 解析 通過連續呼叫 next 函式直到 hasnext 函式返回 false,next 函式返回值的次序應依次為 1,3,2,4,5,6 拓展 假如...

生理週期 OpenJ Bailian 4148

標籤 空格分隔 演算法競賽 生理週期 openj bailian 4148 人生來就有三個生理週期,分別為體力週期 感情週期和智力週期,它們的週期長度分別為23天 28天和33天。每乙個週期中有一天是高峰。在高峰這天,人會在相應的方面表現出色。例如,在智力週期的高峰,人會思維敏捷,注意力容易高度集中...

OpenJ Bailian 4116 拯救公主

公主被惡人抓走,被關押在牢房的某個地方。牢房用n m n,m 200 的矩陣來表示。矩陣中的每項可以代表道路 牆壁 和守衛 x 英勇的騎士 r 決定孤身一人去拯救公主 a 我們假設拯救成功的表示是 騎士到達了公主所在的位置 由於在通往公主所在位置的道路中可能遇到守衛,騎士一旦遇到守衛,必須殺死守衛才...