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 或等於盤面邊長的線開始,它們能立刻放好樓。然後看兩端都是大提示的線,最高的樓一定在靠近中間的位置。