当前位置:首页 > 游戏资讯 > 正文

一个N*M的棋盘,右下方有一个棋子,两人轮流走,可以走到上下左右相邻的未走过的格子,不能走则输,谁胜

一个N*M的棋盘,右下方有一个棋子,两人轮流走,可以走到上下左右相邻的未走过的格子,不能走则输,谁胜-第1张-游戏资讯-龙启科技

这是棋盘对弈的问题,可使用配对解法

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我吧