📜  拼图 |给棋盘上色所需的最少颜色,没有两对给定的对子相互威胁

📅  最后修改于: 2022-05-13 01:57:26.314000             🧑  作者: Mango

拼图 |给棋盘上色所需的最少颜色,没有两对给定的对子相互威胁

谜:

对于以下每个棋子,找出为N x N棋盘着色所需的最小颜色数,这样放置在两个相同颜色的方格上的任何对都不会相互威胁:

  1. 骑士
  2. 主教
  3. 国王

解决方案:

  1. 棋盘上的骑士威胁任何一个方格,该方格是水平两格和垂直一格,或垂直两格和水平一格的方格。

    如图所示,在标准棋盘上,白方的骑士只能攻击黑方,反之亦然。因此,对于骑士,当N > 2 时,最小颜色数为 2 N = 2时为1 ,因为在这么小的棋盘上没有两个骑士可以互相威胁。

  2. 主教是威胁任何在同一对角线上的正方形的人。

    现在,由于主对角线上有N个方格,因此至少需要N种颜色来为对角线的方格着色,这样对角线上的主教就不会相互威胁。要将这种着色扩展到整个棋盘,我们可以使用与位于主对角线上的正方形相同的颜色为列或行着色。这样,所有的对角线都会有不同颜色的方块,所以没有两个主教躺在两个相同颜色的方块上会互相威胁。
  3. 所有与国王方格水平、垂直或对角线相邻的方格,都受到它的威胁。

    考虑一个2 x 2棋盘,其左下角有一个国王。因为这样的国王会威胁到棋盘上所有剩余的方格。因此,需要4种颜色来为2 x 2板着色。

    要为N x N棋盘着色,我们可以将其视为由2 x 2块棋盘组成,并且使用相同的配色方案为每个2 x 2棋盘着色,将确保相同颜色方块上的两个国王不会相互威胁。因此,国王的颜色数是4
  4. 车会威胁棋盘上同一行或同一列上的每个方格。

    为确保车不会威胁其行或列中的任何人,需要N种颜色。此外,使用简单的配色方案, N种颜色足以为整个电路板着色。用N种不同的颜色为第一行着色。对于要着色的每一行,将颜色向左或向右循环移动一个位置,以便没有一行包含两次相同的颜色。