【POJ1067】取石子游戏(威佐夫博弈)

题目描述

传送门

题解

威佐夫博弈。记个公式吧。

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;

const double q=(sqrt(5.0)+1)/2.0;

int a,b,k;
int main(){
    while (~scanf("%d%d",&a,&b)){
        if (a>b) swap(a,b);
        int k=b-a;
        if (a==(int)(k*q))
          printf("0\n");
        else
          printf("1\n");
    }
}

你可能感兴趣的:(poj,博弈)