程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Wythoff Game(hdu2177)

Wythoff Game(hdu2177)

編輯:C++入門知識

對於某個局勢(a,b)  ,b>=a
差值k=b-a
對於某個確定的k
有唯一的奇異局勢(必敗點) (a_k,b_k)   其中a_k=k*(1+sqrt(5))/2        b_k=a_k+k
如果a,b是奇異局勢 則輸出0
不是的話輸出1(通過某種操作可以獲勝)

已知a,b
操作分5種
1.a==b
同時減去a 得到0,0

2.a==a_k      b>b_k
b -(b-b_k)

3.a==a_k     b<b_k
同時拿走a_k-a_(b-a_k)
得到 a_(b-a_k)    a_(b-a_k) + b-a_k

4.a>a_k       b==b_k
從a中拿走 a-a_k

5.a<a_k       b==b_k
5.1 a==a_ j   (j<k)
b-(b-b_ j)
得到 a_ j    b_ j
5.2 a==b_ j   (j<k)
b-(b-a_ j)
得到 b_ j   a_ j 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved