POJ1067 取石子游戏 Wythoff's game C语言
题目:http://poj.org/problem?id=1067
题目大意:中文题不解释……
思路:威佐夫博奕,其实不大懂……附一个链接http://www.docin.com/p-804326.html
提交情况: WA n次, TLE 2次, AC 1次
总结:拖了好久的题,定理的证明实在太纠结了。先开始脑残的暴搜k,后来才想到不用管k是多少,可以把k消掉,ak、bk之间满足关系就好。ak要下取整,否则会WA
只是想把拖了很久的题过掉……博弈的东西,看不懂,不能自己推出公式的话,以后还是不要做了……没有意义……
AC code:
View Code
1 #include <stdio.h>
2 #include <math.h>
3 #include <stdlib.h>
4
5 #define K ((1 + sqrt((double)5)) / 2)
6
7 int main () {
8 int m, n;
9 int a, b;
10 while(~scanf("%d%d", &m, &n)) {
11 a = m <= n ? m : n;
12 b = m >= n ? m : n;
13 if (floor((double)(b - a) * K) == a)
14 printf("0\n");
15 else
16 printf("1\n");
17 }
18 return 0;
19 }