IOI'94 - Day 2 Consider nine clocks arranged in a 3x3 array thusly:
|-------| |-------| |-------|
| | | | | | |
|---O | |---O | | O |
| | | | | |
|-------| |-------| |-------|
A B C
|-------| |-------| |-------|
| | | | | |
| O | | O | | O |
| | | | | | | | |
|-------| |-------| |-------|
D E F
|-------| |-------| |-------|
| | | | | |
| O | | O---| | O |
| | | | | | | |
|-------| |-------| |-------|
G H I
The goal is to find a minimal sequence of moves to return all the dials to 12 o'clock. Nine different ways to turn the dials on the clocks are supplied via a table below; each way is called a move. Select for each move a number 1 through 9 which will cause the dials of the affected clocks (see next table) to be turned 90 degrees clockwise.
| Move | Affected clocks |
| 1 | ABDE |
| 2 | ABC |
| 3 | BCEF |
| 4 | ADG |
| 5 | BDEFH |
| 6 | CFI |
| 7 | DEGH |
| 8 | GHI |
| 9 | EFHI |
Example
Each number represents a time accoring to following table: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
[But this might or might not be the `correct' answer; see below.]
PROGRAM NAME: clocks
INPUT FORMAT
| Lines 1-3: | Three lines of three space-separated numbers; each number represents the start time of one clock, 3, 6, 9, or 12. The ordering of the numbers corresponds to the first example above. |
SAMPLE INPUT (file clocks.in)
9 9 12 6 6 6 6 3 6
OUTPUT FORMAT
A single line that contains a space separated list of the shortest sequence of moves (designated by numbers) which returns all the clocks to 12:00. If there is more than one solution, print the one which gives the lowest number when the moves are concatenated (e.g., 5 2 4 6 < 9 3 1 1).
SAMPLE OUTPUT (file clocks.out)
4 5 8 9
总结:这道题估摸着用暴力能过,所以直接写了,不过写起来还真挺麻烦的
USER: Geterns Liu [geterns1] TASK: clocks LANG: C++ Compiling... Compile: OK Executing... Test 1: TEST OK [0.000 secs, 3016 KB] Test 2: TEST OK [0.000 secs, 3016 KB] Test 3: TEST OK [0.119 secs, 3016 KB] Test 4: TEST OK [0.043 secs, 3016 KB] Test 5: TEST OK [0.119 secs, 3016 KB] Test 6: TEST OK [0.119 secs, 3016 KB] Test 7: TEST OK [0.130 secs, 3016 KB] Test 8: TEST OK [0.140 secs, 3016 KB] Test 9: TEST OK [0.184 secs, 3016 KB] All tests OK.Your program ('clocks') produced all correct answers! This is your submission #5 for this problem. Congratulations!
Here are the test data inputs:
------- test 1 ------- 9 9 12 6 6 6 6 3 6 ------- test 2 ------- 12 9 12 9 9 9 12 9 12 ------- test 3 ------- 6 9 3 3 3 9 12 12 12 ------- test 4 ------- 9 3 9 9 9 9 9 9 9 ------- test 5 ------- 6 12 12 12 12 12 12 12 12 ------- test 6 ------- 3 12 9 6 6 6 12 12 12 ------- test 7 ------- 12 3 3 3 6 6 12 3 6 ------- test 8 ------- 12 3 9 9 12 12 3 6 9 ------- test 9 ------- 9 12 9 12 3 12 9 12 9Keep up the good work!
Thanks for your submission!
本文介绍了一个关于九个钟的算法题目,目标是通过最少的操作步骤将所有钟的时间调整到12点整。提供了完整的C++代码实现,并通过暴力搜索的方式解决了问题,最终实现了所有测试案例的正确解答。
971

被折叠的 条评论
为什么被折叠?



