郑州轻工业大学2021新生赛 小A的宝藏
题目描述
小A和小B历经千辛万苦,终于在一个洞穴中找到了宝藏。
在洞穴深处,他们发现了一颗价值连城的宝石,他们决定做一个游戏以决定宝石属于谁。
游戏规则如下:
每人在自己的回合必须选择其中一个操作:
1.拿走一块或者两块银子;
2.拿走一块金子。
无法继续进行操作的人被认为失败(即银子和金子都已经拿完)。
谁将得到宝石呢?
输入
多样例测试
第一行输入T(T<=100,000),代表样例数;
剩余T行,每行输入n,m(n<1,000,000,000,m<1,000,000,000) 代表银子和金子的数量。
输出
如果小A胜利,输出"Alice",否则输出"Bob"。
样例输入 Copy
3
1 0
3 0
3 1
样例输出 Copy
Alice
Bob
Alice
这个博弈题型,我这个只是去记博弈结论的小菜鸡真没见过,结束后疯狂在纸上演算,发现Bob要赢只能当n%3!=2时并且此时A赢与B赢交替进行
#include<bits/stdc++.h>
using namespace std;
int main(){
int t,n,m;
scanf("%d",&t);
while(t--){
scanf("%d %d",&n,&m);
int x=n%3;
int y=m%2;
if(x==0&&y==0) printf("Bob\n");
else if(x==1&&y==1) printf("Bob\n");
else printf("Alice\n");
}
}