Puzzimo

摩天楼怎么解:从边上看整座城市

阅读约 5 分钟 ·

在摩天楼里,每个格子是一栋 1 到 n 层高的楼,每一行、每一列里每种高度各有一栋。盘面四周的数字表示从那一侧能看到几栋楼:高楼会挡住后面所有比它矮的楼。

这些提示一开始看起来很神秘,但每一个都给出了确切的信息。这篇教程从最简单的提示讲到最微妙的提示。

规则

  • 在 n×n 的方格里,每一行和每一列都有 1 到 n 每种高度的楼各一栋。
  • 盘面外的提示表示从那里沿着这一行或列看过去,能看到几栋楼。
  • 一栋楼如果比它前面所有的楼都高,就能被看到。
  • 如果只靠提示会有两种答案,盘面会给出几栋楼的高度,保证唯一解。

最简单的提示:1 和 n

  • 提示 1 表示只能看到一栋楼,所以最高的楼(n)就紧挨着这个提示。
  • 提示 n 表示每栋楼都能看到,所以从这一侧看过去高度依次是 1、2、3 … n。
  • 提示 2 表示最高的楼不在第一格(否则只能看到 1 栋),而在它前面能看到的只有第一栋楼。

最高的楼离提示能有多近?

在最高的楼之前,每一栋能看到的楼都比前一栋高,所以提示为 c 时,最高的楼(n)不可能在离这一侧最近的 c − 1 格里。在 5×5 盘面上,提示 4 意味着 5 层楼在这一行的最后两格之一。

同样的道理也限制了其他格子。提示为 c 时,这一侧的第一格最多是 n − c + 1:后面必须留出 c − 1 栋更高的楼。

两端的提示要一起看

每条线两端各有一个提示,而最高的楼从两边都看得到。所以两个提示合起来,大致说明了最高的楼在哪里:

  • 两端都是大提示时,最高的楼会被推向中间。
  • 一端提示小、另一端提示大时,最高的楼靠近提示小的一端。
  • 任何一条线上,两端的提示加起来最多是 n + 1。

然后像数独一样思考

放好一些楼之后,这道题就变成了拉丁方阵:每种高度在每行每列只出现一次,所以用唯一和数对就能填完。每当一条线快填满时,再核对一下它的提示:最后几格通常只有一种排列能让看到的楼数正确。

解题流程

  1. 填好所有提示为 1 的线(最高的楼紧挨提示)和提示为 n 的线(依次升高)。
  2. 对其他提示,把最高的楼从离提示太近的格子里排除。
  3. 比较两端的提示,找出每条线上最高的楼的位置。
  4. 用行列推理:每种高度在每条线上只出现一次。
  5. 对快填满的线数一数能看到几栋楼,放好最后几格。

练习

Puzzimo 的摩天楼有 4×4、5×5 和 6×6 三种大小,四边都有提示;每日挑战是 5×5。笔记、撤销和提示都是内置的(每用一次提示,排名成绩加 30 秒);填错一个高度算一次失误,第三次失误这一局就结束。

马上玩摩天楼

常见问题

摩天楼里怎么数能看到的楼?

从提示那一侧沿着这条线看过去。第一栋楼总能看到;后面的每一栋,只有比它前面所有楼都高时才能看到。

摩天楼里提示 2 是什么意思?

正好能看到两栋楼:第一栋,以及更远处最高的那栋。所以最高的楼不会紧挨着提示,而第一栋和最高的楼之间的每一栋都比第一栋矮。

摩天楼从哪里开始解?

从提示等于 1 或等于盘面边长的线开始,它们能立刻放好楼。然后看两端都是大提示的线,最高的楼一定在靠近中间的位置。