欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

POJ - 1704 Georgia and Bob

程序员文章站 2022-07-08 19:12:40
Georgia and Bob题意:一个水平网格上有N个棋子Georgia和Bob每到自己回合时可以向左移动网格上任意一个棋子任意步数棋子与棋子之间不能重叠和相互跨越假设Georgia和Bob都采用最优策略,谁会赢得比赛?输入要求:第一行依次输入网格上所有棋子所在的位置,如:1 3 6 7第二行输入先手者的名字,如:Georgia输出要求:如果Georgia赢的比赛,输出:“Georgia will win”如果Bob赢的比赛,输出:“Bob will win”思路:...

Georgia and Bob

题意:

POJ - 1704 Georgia and Bob

  • 一个水平网格上有N个棋子
  • Georgia和Bob每到自己回合时可以向左移动网格上任意一个棋子任意步数
  • 棋子与棋子之间不能重叠和相互跨越
  • 假设Georgia和Bob都采用最优策略,谁会赢得比赛?

输入要求:

  • 第一行依次输入网格上所有棋子所在的位置,如:1 3 6 7
  • 第二行输入先手者的名字,如:Georgia

输出要求:

  • 如果Georgia赢的比赛,输出:“Georgia will win”
  • 如果Bob赢的比赛,输出:“Bob will win”
思路:
  • 把该问题类比Nim游戏
  • 每两个棋子:看作一个石堆
  • 棋子之间的空格数量:看作石堆中的石子数量
  • 任意一个棋子向左移动任意步数:看作从任意一个石堆中取出任意数量石子
  • 只需要判断所有的初始石堆(所有的每两个一组的棋子),相应石子数量(每组棋子中间的空格数量)的异或结果是否为0即可

本文地址:https://blog.csdn.net/k909397116/article/details/107899380

相关标签: 算法