华夫饼堆叠拼图算法

时间:2014-02-28 13:49:10

标签: java algorithm logic puzzle

以下是我要解决的问题: http://www.hpcodewars.org/past/cw16/problems/2013ProblemSetFinalPost.pdf 转到第20号问题。它被称为Waffle Stacking。

  

你有一个5x5的方格。在网格的每个方格上,您可以构建一堆   华夫饼,其高度从1到5不等。网格的边缘是一些   数字线索。你的任务是在每个广场上建立一堆华夫饼干   方式:
   •每行包含华夫饼干堆叠的每个可能高度    •每列包含华夫饼干堆叠的每个可能高度    •每个数字线索描述了可以的华夫饼干堆叠的数量   假设您从该方向查看行或列时看到了   较短的华夫饼干堆放在较高的华夫饼堆后面。例如,a   标有“5”的线索表示五个华夫饼堆必须出现增加   订单(否则你将无法看到所有五个华夫饼干   堆栈),而标记为“1”的线索表示最高的华夫饼堆(标记为5的那个)必须   先来。

     

输入:
  enter image description here

     

输出:
  enter image description here

     

第一行输入显示每列顶部的线索。接下来的5行输入显示了每行图表左侧和右侧的线索。最后一行输入显示了每列底部的线索   2 2 3 2 1
  4 1
  1 4
  3 2
  2 2
  3 2
  3 2 1 3 4
  你的程序应该打印5x5网格,每个方块之间有一个空格   1 3 2 4 5
  5 2 4 3 1
  2 1 3 5 4
  4 5 1 2 3
  3 4 5 1 2

我首先说,如果有1,那么5必须紧挨着它,所以我立即将5放在解决方案网格中。在那之后,我被困住了!我曾经尝试过蛮力,但在竞赛环境中实践需要很长时间。

这个问题有可行的解决办法吗?

由于

0 个答案:

没有答案