时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld
题目描述
牛牛感觉在上一次赌约中,情况对于自己非常不利,所以决定再赌一场。
这时候,牛蜓队长出现了:第一,绝对不意气用事;第二,绝对不漏判任何一件坏事;第三,绝对裁判的公正漂亮。
牛蜓队长带他们来到了一个棋盘游戏,棋盘左上角是(0,0)(0,0),这个棋盘在(x,y)(x,y)的位置有一个棋子,牛牛和牛可乐轮流移动这个棋子,这个棋子可以左移也可以上移,可以移动一格或者两格,直到不能再移动(即到(0,0)(0,0))的那个人算输。
如果原本在(x,y)(x,y),左移一格即为(x,y -1)(x,y−1),上移一格即为(x-1,y)(x−1,y)
这个时候,牛牛为了弥补上一局的不公平,决定要自己先手,如果两个人都用最优的策略,最后牛牛是否能获胜。
输入描述:
有多组输入样例,第一行为样例组数t(t≤1×10 6 )
接下来 tt 行每行有一个整数 xx 和 yy,分别表示初始位置(x,y≤1×10 9 )
输出描述:
输出t行,如果牛牛获胜,就输出”yyds”(不带引号)
否则输出”awsl”
示例1
输入
复制
2 0 0 0 2
输出
复制
awsl yyds
题解:
很明显的博弈。。
比赛时没猜出(着急打lol去了)
画了图退出来了
当abs(x-y)是3的倍数时就是牛牛输掉
代码:
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios::sync_with_stdio(false); int t; cin>>t; while(t--) { ll x,y; cin>>x>>y; if(x==0&&y==0) cout<<"awsl"<<endl; else if(abs(x-y)%3!=0) cout<<"yyds"<<endl;//先手获胜 else cout<<"awsl"<<endl; } }