追加:分享一下我的解题过程:
将R向下拧一格后,可以看到标号下的第一个位置透出了兔子,因为这一列可以透光,可以认为其中所有的片均为“横”或“无”,这时在这一列如果换上其他块变成不透光的话,则换上的那片即为“纵”。旋转每一层可以记录出来每一个“纵”。
我记录的方式是用“/”表示“横”或“无”,用“|”表示“纵”,第一轮的笔记如下:
*/||/|////
R|//|////|
u/////////
b/////////
i/////|||/
k/////////
这时候可以确认*、R、i三层的“纵”,那么,把纵放在同一列之后,调整其他层可以找到这一列透明状态的时候,说明当前排列在一起的除了已知的“纵”之外,其他各格为“无”,记录“0”;同样旋转每一层,遇不透光的情况则可确定该格为“横”,记录为“-”。如果并非上次确定为纵的格子同样透光的话,可确定为“无”。第二轮的笔记很快也出来了:
*0||0|0000
R|00|0000|
u-0-0-0000
b00000--0-
i00000|||0
k0-0-000-0
好了,有了这个笔记就可以来组合了。
这时候可以来说说我进行验证的技巧:把笔记上的“条”用加空格的方式列出,即将: R|00|0000| 调整成: R| 0 0 | 0 0 0 0 | 然后用逗号画在最后,把前面的笔记复制一遍,成: R| 0 0 | 0 0 0 0 |,| 0 0 | 0 0 0 0 | 这样的话,多行列在一起,通过在某一行前面加空格错位,就可以观察上下呈一列的组合状态,列出所有不会影响透光的状态。
直接实战举例吧:
ik两行,|||和000必须对应,否则肯定会出现-|的组合造成不透光的情形。 i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 0 这样肯定不行,不过把k向后错一行: i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k 0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 0 就可以满足。
下面继续推,你会发现所有的推后都不能实现全透光,那么把最后多余的数字移到前面,变成: i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 -
当然,还会出现重复情况,比如u一列有连续的四个0,同样用这连续的0对应连续的|,有两种可能,暂时无法排除,所以两种情况都列出来:
情况A: u- 0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 情况B: u0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0,-
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 这样的重复情况只能带着往后走。
加上R吧,毕竟有三个|来作为验证,避免出现更多的重复情况:
情况A: R0 | 0 0 0 0 |,| 0 0 | 0 0 0 0 |,| 0
u- 0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 情况B: R| 0 0 0 0 |,| 0 0 | 0 0 0 0 |,| 0 0
u0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0,-
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 下面加上b:
情况A: R0 | 0 0 0 0 |,| 0 0 | 0 0 0 0 |,| 0
u- 0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0
b- 0 -,0 0 0 0 0 - - 0 -,0 0 0 0 0 -
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 情况B: R| 0 0 0 0 |,| 0 0 | 0 0 0 0 |,| 0 0
u0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0,-
b0 - - 0 -,0 0 0 0 0 - - 0 -,0 0 0 0
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 - 竟然还没得到唯一解,好吧,加上*:
情况A无解
情况B: *| 0 0 0 0,0 | | 0 | 0 0 0 0,0 | | 0
R| 0 0 0 0 |,| 0 0 | 0 0 0 0 |,| 0 0
u0 - 0 - 0 0 0 0,- 0 - 0 - 0 0 0 0,-
b0 - - 0 -,0 0 0 0 0 - - 0 -,0 0 0 0
i0 0 0 0 0 | | | 0,0 0 0 0 0 | | | 0
k0,0 - 0 - 0 0 0 - 0,0 - 0 - 0 0 0 -
红色部分为一个完整的环形,逗号的位置就是标记的字母,根据错开的位置,很容易就列出了答案: ┌─┬─┬─┬─┬─┬─┐
│*│ │ │b│ │ │
├─┼─┼─┼─┼─┼─┤
│ │R│ │ │ │ │
├─┼─┼─┼─┼─┼─┤
│ │ │ │ │ │ │
├─┼─┼─┼─┼─┼─┤
│ │ │u│ │ │ │
├─┼─┼─┼─┼─┼─┤
│ │ │ │ │i│ │
├─┼─┼─┼─┼─┼─┤
│ │ │ │ │ │k│
└─┴─┴─┴─┴─┴─┘ 转帽子、拍照,可以去显摆了!
[ 本帖最后由 耗子哥哥 于 2012-2-26 21:27 编辑 ] |