大家好。非常冒昧到这里来问一道算法题。
我有一个棋盘,10×10大小的。现在我要依次在格子内放棋子,棋子有编号的,1 到 100。
要求是:
1. 编号为1的棋子只能放在最左上角的格子里。接下里一次放相应编号的棋子。
2. 接下来的棋子可以水平相隔两个格子或者竖直相隔两个格子放入。或者……
3. 接下来的棋子可以在对角线的线路上放,和上次的棋子相隔一个格子。
4. 目的是100个棋子都能放进棋盘。
问题是按照这个规则能有多少种结果。用程序怎么实现呢?
我自己简化过问题到5×5,包括可以重复的组合一共有500+种结果。但是同样的程序跑6×6已经一个多小时出不来结果了。我想知道在算法上应该选择什么样的策略。谢谢。
我有一个棋盘,10×10大小的。现在我要依次在格子内放棋子,棋子有编号的,1 到 100。
要求是:
1. 编号为1的棋子只能放在最左上角的格子里。接下里一次放相应编号的棋子。
2. 接下来的棋子可以水平相隔两个格子或者竖直相隔两个格子放入。或者……
3. 接下来的棋子可以在对角线的线路上放,和上次的棋子相隔一个格子。
4. 目的是100个棋子都能放进棋盘。
问题是按照这个规则能有多少种结果。用程序怎么实现呢?
我自己简化过问题到5×5,包括可以重复的组合一共有500+种结果。但是同样的程序跑6×6已经一个多小时出不来结果了。我想知道在算法上应该选择什么样的策略。谢谢。
