51nod 1185 威佐夫游戏V2

原创 2016年08月31日 16:43:25
有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石子的数量,问最后谁能赢得比赛。
例如:2堆石子分别为3颗和5颗。那么不论A怎样拿,B都有对应的方法拿到最后1颗。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行2个数分别是2堆石子的数量,中间用空格分隔。(1 <= N <= 10^18)
Output
共T行,如果A获胜输出A,如果B获胜输出B。
Input示例
3
3 5
3 4
1 9
Output示例
B
A
A
分析:高精度+黄金分割定律,N到2<<64,用double表示黄金分割率会出现精度问题,所以要将其分割成三部分每部分9位。
代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MOD=1e9;
int Gold[3]={618033988,749894848,204586834};
int main(){
	int T;scanf("%d",&T);
	while(T--){
		LL a,b,temp;
		scanf("%lld%lld",&a,&b);
		if(a<b)	swap(a,b);
		LL dist=a-b,ta=dist/MOD,tb=dist%MOD;
		temp=Gold[2]*tb;
		temp=ta*Gold[2]+tb*Gold[1]+temp/MOD;
		temp=ta*Gold[1]+tb*Gold[0]+temp/MOD;
		temp=dist+ta*Gold[0]+temp/MOD;
		if(temp==b)	printf("B\n");
		else printf("A\n");
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

51Nod-1185-威佐夫游戏 V2

ACM模版描述有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2...
  • f_zyj
  • f_zyj
  • 2016年07月27日 00:04
  • 701

51NOD 1185 威佐夫游戏 V2(博弈论 + 减少精度)

传送门 有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出2堆石...

51nod 1185 威佐夫游戏 V2(威佐夫博弈)

1185 威佐夫游戏 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 有2堆石子。A B两个人轮...

模拟乘法-51nod1185 威佐夫游戏 V2

思路: 因为数字过大,那么1.618后面的诸多位小数也会对其产生影响,那么将1.618后面诸多小数提取出来,模拟乘法 模拟乘法: 普通的a*b 手动托出乘法运算,对应位数运算,最后只要拿出对于整...

[51Nod 1185 威佐夫游戏 V2]Wythoff Game+乘法模拟

[51Nod 1185 威佐夫游戏 V2]Wythoff Game+乘法模拟题目链接:[51Nod 1185 威佐夫游戏 V2] 题意描述:有2堆石子。A B两个人轮流拿,A先拿。每次可以从一堆中取...

51NOD 1185 威佐夫游戏 V2(大数运算 JAVA 模板)

传送门::  点我 点我   http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1185 1185 ...
  • sizaif
  • sizaif
  • 2017年05月04日 11:34
  • 160

51NOD 1067 Bash游戏 V2 (找规律)

题目链接   :   https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1067 1067 Bash游戏 V2 ...
  • sizaif
  • sizaif
  • 2017年05月03日 17:55
  • 171

51Nod_1067Bash游戏 V2

原题链接 有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,4颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。 例如N ...

51Nod 1067 Bash游戏 V2

1067 Bash游戏 V2 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 有一堆石子共有N个。A B两个人轮流拿,A先拿。每次只能拿1,3,...
  • stc_XC
  • stc_XC
  • 2017年05月30日 22:46
  • 117

51Nod Problem 1067 Bash游戏 V2(博弈,sg函数)

51Nod Problem 1067 Bash游戏 V2(博弈,sg函数)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:51nod 1185 威佐夫游戏V2
举报原因:
原因补充:

(最多只允许输入30个字)