D-牛牛取石子_牛客小白月赛65 (nowcoder.com)
题意:
![](https://img-blog.csdnimg.cn/img_convert/43167f0adb9483a2a94ae04f07763639.png)
思路:
注意到最后的胜负只和两者之间最小值有关,因此这个其实就是对于最小值的巴什博弈
因此结论为min(a,b)%3=0为必败态
然而这是以做完决策后,最小值不变的前提去考虑的
以边界条件为前提时我们需要考虑特判
当a=b&&a%3=1时,经过一次决策后,最小值改变,min(a,b)%3=2,因此需要特判成必败态
Code:
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mxn=1e6+10;
int a,b;
void solve(){
cin>>a>>b;
int ok=1;
if(min(a,b)%3==0) ok=0;
if(a%3==1&&a==b) ok=0;
if(ok) cout<<"niuniu"<<'\n';
else cout<<"niumei"<<'\n';
}
signed main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int __=1;cin>>__;
while(__--)solve();return 0;
}