牛客小白月赛65——D-牛牛取石子

链接:https://ac.nowcoder.com/acm/contest/49888/D
来源:牛客网

牛牛和牛妹在玩游戏,他们的游戏规则是这样的:
一共有两堆石子,第一堆有 aaa 个,第二堆有 bbb 个,牛牛和牛妹轮流取石子,牛牛先手,每次取石子的时候只能从以下 222 种方案种挑一种来取(对于选择的方案数必须保证当前石子 ≥\ge≥ 取的石子个数才能取):
1. 第一堆取 111 个,第二堆取 222 个
2. 第一堆取 222 个,第二堆取 111 个
谁先无法取石子,谁就输了。假设牛牛和牛妹都很聪明,请问谁会获胜?

输入描述:

第一行输入一个正整数 T(1≤T≤105)T(1 \le T \le 10^5)T(1T105) ,代表数据组数。
接下来 TTT 行,每行输入两个整数 a,b(1≤a,b≤1018)a,b (1 \le a,b\le 10^{18})a,b(1a,b1018) 代表两堆石子的数量。

输出描述:

对于每组数据,输出一行,代表胜利者的名字(牛牛获胜输出niuniu,牛妹获胜输出niumei)。
示例1

输入

复制
2
1 2
3 3

输出

复制
niuniu
niumei


## 分析 这道题目是一道博弈论的题目,富含思维,同时也涉及对称策略(模仿棋)
#include<iostream>
#include<string>
using namespace std;
void xian()
{
puts("niuniu");
}
void hou()
{
puts("niumei");
}
int T;
long long a, b;
int main()
{
cin >> T;
while (T--)
{
scanf("%lld%lld", &a, &b);
int r = min(a, b) % 3;
if (r)
{
if (r = 1 && a == b)hou();
else xian();
}
else
{
hou();
}
}
return 0;
}
posted @   liuwansi  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示