拼图|计数器和棋盘

给定2n个计数器,其中n>1。您必须将这些2n计数器放置在n×n板上,以便不超过 两个计数器位于同一行、列或对角线上。

null

解决方案: 因为我们需要将2n个计数器放入给定nxn板的n行和n列中,条件是同一行或同一列中最多可以有两个计数器。由此,我们可以得出结论,每行和每列中必须放置两个计数器。

案例1: 对于偶数n=2k,我们可以通过在前k列和最后k列中相同地放置n个计数器来获得解决方案,如下所述。 假设电路板的行和列分别从上到下和从左到右编号。 在第1列和第k+1列的前两行中放置两个计数器,在第2列和第k+2列的第3行和第4行中放置两个计数器,依此类推,直到最后计数器被放置在第k列和第2k列的第n–1行和第n行中。当n=8时,让我们通过一个例子来理解这一点:

图片[1]-拼图|计数器和棋盘-yiteyi-C++库

n=8的2n计数器问题

案例2: 对于奇数n=2k+1,k>0,我们可以通过将两个计数器放置在第1列的第1行和第2行,将两个计数器放置在第2列的第3行和第4行,依此类推,直到计数器放置在第k列的第n–2行和第n–1行。然后将两个计数器放置在第k+1列的第一行和最后一行。然后,将k个计数器放置在电路板的右侧,相对于电路板的中心正方形与左侧对称:两个计数器放置在k+2列的第2行和第3行,k+3列的第4行和第5行,依此类推,直到最后一列的第n–1行和第n行。当n=7时,让我们通过一个例子来理解这一点:

图片[2]-拼图|计数器和棋盘-yiteyi-C++库

n=7的2n反问题

参考资料: 算法谜题——阿纳尼·莱维廷、玛丽亚·莱维廷

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享