一个N*M的棋盘,右下方有一个棋子,两人轮流走,可以走到上下左右相邻的未走过的格子,不能走则输,谁胜
- 游戏资讯
- 发布时间:2024-11-15 13:24:41
这是棋盘对弈的问题,可使用配对解法
N*M定义为N行M列
若棋盘格子为奇数,则N和M均为奇数。设为N*M=2k+1
右下方的棋子已占一个格,还剩下2k个格子。其中最下面一行有M-1个格子,为偶数,剩下N-1行,为偶数
因此,可以把剩下的2k个格子两两配对分成k个1×2的小矩形
这时,先手总是领先进入某一个1×2小矩形的第一个格,后手总可以随之进入这个小矩形的第二个格。最后必然先手先无法移动这个棋子,先手输.后手必取胜
若棋盘格子为偶数,设为N*M=2k
将这2k个格子两两配对分成k个1×2的小矩形
右下方的棋子必在某个1×2的小矩形的一个格子中。先手将棋子走入这个1×2的小矩形的另一个格子中.这时还有k-1个1×2的小矩形,每个小矩形中都有两个小方格.这时该后手走,后手总是领先进入剩下的某个1×2小矩形的第一个格,先手就可以随之进入这个小矩形的第二个格。最后必然后手先无法移动这个棋子,后手输.先手必取胜
所以
棋盘格子为奇数则后手胜
棋盘格子为偶数则先手胜
=================
注:将棋盘格子两两配对成为若干个1×2的小矩形是解决本题的关键!
有什么不懂的再Hi我吧