Time Limit: 1000 ms Memory Limit: 65535 kB Solved: 114 Tried: 339
Description
UDK和RU在一个白色的方格棋盘上玩游戏,棋盘有N行M列,由N*M个小方格组成。两人轮流进行游戏,UDK先开始,然后是RU。在每一轮游戏中,当前一方需要在棋盘上选择一个1*k或k*1的全白矩形,并将里面的k个小格子全部染成黑色(每轮k的大小都可以由当前玩家自己决定),将最后一个格子染色的一方获得游戏胜利。
现在假设两人都采取最佳的策略,给定棋盘大小,请问谁将获得胜利?
Input
数据的第一行是一个整数T(0 <= T <= 10000),代表一共有T组测试数据。
接下来T行,每行由两个整数N和M组成(1 <= N, M <= 100),表示了每组数据中棋盘的大小。
Output
请严格输出T行,每行仅包括一个字符串"UDK" 或者 "RU",代表每组测试数据对应的胜利一方的姓名。
Sample Input
2
1 2
2 2
Sample Output
UDK
RU
Hint
Sample Input中共有两组数据,其中第一组数据棋盘的大小是1*2,即1行2列,UDK先手,可以直接选择涂1*2的矩阵,把棋盘完全染色从而直接获得胜利。
请严格按照输出规则输出,行末不允许有多余的空格,最后一组数据行末同样需要换行。
/*我们先思考一个经典的问题。两个人在一张圆桌上玩游戏,两人需要轮流在桌子上放下一枚硬币,每次硬币的位置不能与之前的硬币相交,无法放置硬币的一方失败,问谁将获得最后的胜利。
事实上这道题目很简单,先手只需要把第一枚硬币放到圆桌的中心,那么无论后手在什么位置放硬币,先手只要放在关于中心的对称位置即可。也就是说,只要后手能够放下硬币,先手一定存在放下硬币的方法,所以先手必胜。
我们用同样的思路思考这道题目:
1、当棋盘的长宽均为偶数时,这个棋盘存在一个中心点(注意是中心点,不是中心格子),这时,无论先手怎样选择矩形染色,后手一定可以在先手选择矩形位置的对称位置找到一个相同大小的矩形染色,因而在这种情况下后手必胜。
*/
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#define N 1005
int main()
{
int m,n,T;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&m);
if(n%2||m%2)
printf("UDK\n");
else
printf("RU\n");
}
return 0;
}