切换到宽版
  • 8593阅读
  • 1回复

求usaco 1.4.2 clocks题解 [复制链接]

上一主题 下一主题
离线skywalker
 
只看楼主 倒序阅读 0 发表于: 2008-02-29
The Clocks 时钟 (IOI'94 - Day 2)
描述
考虑将如此安排在一个 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

[但这可能不是正确的方法,请看下面]
[编辑] 格式
PROGRAM NAME: clocks

INPUT FORMAT:

(file clocks.in)

第1-3行: 三个空格分开的数字,每个数字表示一个时钟的初始时间,3,6,9,12。数字的含意和上面第一个例子一样。

OUTPUT FORMAT:

(file clocks.out)

单独的一行包括一个用空格分开的将所有指针指向12:00的最短移动顺序的列表。

如果有多种方案,输出那种使的连接起来数字最小的方案。(举例来说5 2 4 6 < 9 3 1 1)。

[编辑] SAMPLE INPUT
9 9 12
6 6 6
6 3 6
[编辑] SAMPLE OUTPUT
4 5 8 9

这道题如果用硬搜的话,会超时。求好方法。
[ 此贴被skywalker在2008-02-29 20:52重新编辑 ]
离线skywalker
只看该作者 1 发表于: 2008-02-29
程序来源:http://hi.baidu.com/leokan/blog/item/8e2ca9c2fa3aed1f0ef47784.html
这里有一个程序,但是const里的那个数组我看不懂是什么意思。
那上面的题解没看懂,请各位大牛讲一讲。那个预设数组的意义是什么?
快速回复
限100 字节
 
上一个 下一个