题目描述
设有n个立方体,每个立方体的每一面用红、黄、蓝、绿等n种颜色之一染色。要把这n个立方体叠成一个方形柱体,使得柱体的4个侧面的每一侧均有n种不同的颜色。试设计一个回溯算法,计算出n个立方体的一种满足要求的叠置方案。
对于给定的n个立方体以及每个立方体各面的颜色,计算出n个立方体的一种叠置方案,使得柱体的4 个侧面的每一侧均有n种不同的颜色。
输入
输入数据的第一行有1 个正整数n,0
图中F表示前面,B表示背面,L表示左面,R表示右面,T表示顶面,D 表示底面。相应地,2 表示前面,3 表示背面,0 表示左面,1 表示右面,5 表示顶面,4 表示底面。
例如,在示例输出文件中,第3 行的6 个数0 2 1 3 0 0分别表示第1 个立方体的左面的颜色为R, 右面的颜色为B, 前面的颜色为G, 背面的颜色为Y, 底面的颜色为R, 顶面的颜色为R。
输出
将计算出的n 个立方体的一种可行的叠置方案输出。每行6 个字符,表示立方体各面的颜色。如果不存在所要求的叠置方案,输出“No solution!”。
样例输入
4
RGBY
0 2 1 3 0 0
3 0 2 1 0 1
2 1 0 2 1 3
1 3 3 0 2 2
样例输出
RBGYRR
YRBGRG
BGRBGY
GYYRBB
参考代码
暂无
解析
暂无