题目描述 Description
黑板上有n个数字X1,X2,X3,……Xn,男主和女主玩起了数字游戏。
女主和男主轮流对其中一个数进行游戏操作:
将Xi改为区间[(Xi+1)/2,Xi )中的一个数。(除法向下取整,区间左闭右开)
如果这个数变成了1,便将其擦去(优先于人物操作),无法修改数字的人失败。
男主希望女主在双方均采取最优策略的情况下永远取得胜利。
输入描述 Input Description
第一行为一个正整数n,代表数字个数。
第二行为n个正整数,代表X1,X2,X3,……Xn这n个数字。
输出描述 Output Description
如果从女主开始游戏,女主可以获胜,输出"Lady First" (不含引号),表示男主将主动权让给了女主。
否则必须是从男主开始,女主才能获胜,输出"You Are An Apple of My Eyes" (不含引号),表示男主赞美了女主之后才能获得主动权。
样例输入 Sample Input
【样例输入1】
1
5201314
【样例输入2】
6
20 13 3 22 17 25
样例输出 Sample Output
【样例输出1】
Lady First
【样例输出2】
You Are An Apple of My Eyes
数据范围及提示 Data Size & Hint
【数据范围与约定】
对于100%的数据,1 ≤ n ≤ 520,1 ≤ ai ≤ 1018。
【来源】
2013年3月24日白色情人节欢乐赛Day2T1。
先达标打印出sg值,发现如果n为奇数sg(n)=sg(n/2)
黑板上有n个数字X1,X2,X3,……Xn,男主和女主玩起了数字游戏。
女主和男主轮流对其中一个数进行游戏操作:
将Xi改为区间[(Xi+1)/2,Xi )中的一个数。(除法向下取整,区间左闭右开)
如果这个数变成了1,便将其擦去(优先于人物操作),无法修改数字的人失败。
男主希望女主在双方均采取最优策略的情况下永远取得胜利。
输入描述 Input Description
第一行为一个正整数n,代表数字个数。
第二行为n个正整数,代表X1,X2,X3,……Xn这n个数字。
输出描述 Output Description
如果从女主开始游戏,女主可以获胜,输出"Lady First" (不含引号),表示男主将主动权让给了女主。
否则必须是从男主开始,女主才能获胜,输出"You Are An Apple of My Eyes" (不含引号),表示男主赞美了女主之后才能获得主动权。
样例输入 Sample Input
【样例输入1】
1
5201314
【样例输入2】
6
20 13 3 22 17 25
样例输出 Sample Output
【样例输出1】
Lady First
【样例输出2】
You Are An Apple of My Eyes
数据范围及提示 Data Size & Hint
【数据范围与约定】
对于100%的数据,1 ≤ n ≤ 520,1 ≤ ai ≤ 1018。
【来源】
2013年3月24日白色情人节欢乐赛Day2T1。
先达标打印出sg值,发现如果n为奇数sg(n)=sg(n/2)
如果n为偶数sg(n)=n/2
#include <cstdio>
typedef long long lli;
lli get_sg(lli n){
if(n & 1)
{
return get_sg(n>>1);
}
else
return n<<1;
}
int main(void){
int n;
scanf("%d", &n);
lli ans = 0, t;
for(int i =0; i < n; ++i)
{
scanf("%lld", &t);
ans ^= get_sg(t);
}
if(ans == 0)
{
printf("You Are An Apple of My Eyes\n");
}
else
{
printf("Lady First\n");
}
return 0;
}