51nod 1185 威佐夫游戏 V2
Posted 王宜鸣
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51nod 1185 威佐夫游戏 V2相关的知识,希望对你有一定的参考价值。
思路:
威佐夫博弈 + 乘法模拟。
实现:
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 typedef long long ll; 5 6 const ll tmp[3] = { 618033988, 749894848, 204586834 }; 7 const ll mod = 1e9; 8 9 int main() 10 { 11 int t; 12 ll a, b; 13 cin >> t; 14 while (t--) 15 { 16 cin >> a >> b; 17 if (a < b) 18 swap(a, b); 19 ll x = a - b; 20 ll c = a - b; 21 ll p = c / mod, l = c % mod; 22 ll a1 = l * tmp[2]; 23 ll a2 = p * tmp[2] + l * tmp[1] + a1 / mod; 24 ll a3 = p * tmp[1] + l * tmp[0] + a2 / mod; 25 ll a4 = c + p * tmp[0] + a3 / mod; 26 cout << (a4 == b ? ‘B‘ : ‘A‘) << endl; 27 } 28 return 0; 29 }
以上是关于51nod 1185 威佐夫游戏 V2的主要内容,如果未能解决你的问题,请参考以下文章
(博弈论 高精度小数)51NOD 1185 威佐夫游戏 V2