标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 4442 Accepted Submission(s):
2306
这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,...,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)。
可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而 bk= ak + k。
有固定的判断公式,如果a==(b-a)(sqrt(5.0+1)/2.0),那么(a,b)就为奇异点;
1 #include <stdio.h> 2 #include <math.h> 3 int main() 4 { 5 int t, n, m; 6 while(~scanf("%d %d", &n, &m)) 7 { 8 if(n > m) 9 { 10 t = n; 11 n = m; 12 m = t; 13 } 14 t = m -n; 15 if(n == (int)((double)t*(sqrt(5.0)+1.0)/2.0)) 16 printf("0\n"); 17 else 18 printf("1\n"); 19 } 20 return 0; 21 }
标签:
原文地址:http://www.cnblogs.com/fengshun/p/4678820.html