最近搞了一下博弈论,处于初级入门阶段,找了几个题做做,正巧碰上这题。这题是Nim博弈的一个变形,将两坐标的距离看作一堆石子中的石子数,n就是石子堆数,所以根据Nim博弈的结论:a1 ^ a2 ^ a3……^an == 0 ,则必胜。所以这题的答案就出来了。

My Code:

#include <iostream>
#include <cstdio>

using namespace std;

int main(){
    //freopen("data.in", "r", stdin);
    int a, b, ans, tmp;
    int n, m;
    while(scanf("%d%d", &n, &m) != EOF){
        ans = 0;
        while(n--){
            scanf("%d%d", &a, &b);
            tmp = (a - b) > 0 ? (a - b - 1) : (b - a - 1);
            ans ^= tmp;
        }
        if(ans){
            puts("I WIN!");
        }else{
            puts("BAD LUCK!");
        }
    }
    return 0;
}



相关文章:

  • 2021-07-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2018-02-18
  • 2021-06-14
  • 2021-09-27
  • 2022-01-24
猜你喜欢
  • 2021-11-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-03
  • 2021-08-14
  • 2021-08-26
相关资源
相似解决方案