Problem 1395 --算法实现题 5-7 n 色方柱问题(习题 5-14)

1395: 算法实现题 5-7 n 色方柱问题(习题 5-14)

"
Time Limit $1$ 秒/Second(s) Memory Limit $512$ 兆字节/Megabyte(s)
提交总数 $7$ 正确数量 $0$
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 分类标签 回溯
设有 n 个立方体,每个立方体的每一面用红、黄、蓝、绿等 n 种颜色之一染色。要把这n 个立方体叠成一个方形柱体,使得柱体的 4 个侧面的每一侧均有 n 种不同的颜色。试设计一个回溯算法,计算出 n 个立方体的一种满足要求的叠置方案。
«算法设计:
对于给定的 n个立方体以及每个立方体各面的颜色, 计算出 n个立方体的一种叠置方案,使得柱体的 4 个侧面的每一侧均有 n 种不同的颜色。

输入第一行有 1 个正整数 n,0<n<27,表示给定的立方体个数和颜色数均为 n。第 2 行是 n 个大写英文字母组成的字符串。该字符串的第 k(0≤k<n)个字符代表第 k 种颜色。接下来的 n 行中,每行有 6 个数,表示立方体各面的颜色。立方体各面的编号如下图所示。

图中 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

推荐代码 查看1395 所有题解 上传题解视频得图灵币

本题记录 用 户(点击查看用户) 运行号(点击购买题解) 时 间
算法最快[$ $ms]
内存最少[$ $KB]
第一AC
第一挑战 hanlei 448626 2019-07-22 15:39:16

赛题来源/所属竞赛 NA 算法导论(第三版)中文完整高清版

竞赛编号 竞赛名称 竞赛时间 访问比赛