我有N个方形瓷砖。瓷砖的每一面都是红色,绿色或蓝色。目标是从瓷砖形成最大可能的正方形,使得相邻边缘具有相同的颜色。
实施例1:让N,W,S,E分别代表北,西,南和东瓷砖侧,R,G,B代表颜色。我们有5个瓷砖
N W S E
1 B R B R 1 4
2 B G R B i can form 2x2 square from it placing tiles like this 2 3
3 B G G G
4 G R B R
5 G R B R
示例2:我们有6个瓷砖
N W S E
1 B B B B
2 B B B B
3 G G G G
4 G G G G
5 G G G G
6 R R R R
此处构建的最大可能方块是1x1。
我将开发解决此任务的应用程序。在最短的时间内找到最佳解决方案的好算法是什么?
答案 0 :(得分:3)
显然,你可以通过在选择的瓦片上写下一组约束来找到解决方案,然后使用回溯搜索。如果有更好的通用解决方案,我会感到惊讶,因为看起来您可以将非常普遍的问题编码为平铺问题 - 请参阅http://en.wikipedia.org/wiki/Wang_tile