51Nod-1069-Nim游戏
2016-04-21 19:10
295 查看
有N堆石子。A B两个人轮流拿,A先拿。每次只能从一堆中取若干个,可将一堆全取走,但不可不取,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N及每堆石子的数量,问最后谁能赢得比赛。
例如:3堆石子,每堆1颗。A拿1颗,B拿1颗,此时还剩1堆,所以A可以拿到最后1颗石子。
Input
第1行:一个数N,表示有N堆石子。(1 <= N <= 1000)
第2 - N + 1行:N堆石子的数量。(1 <= A[i] <= 10^9)
Output
如果A获胜输出A,如果B获胜输出B。
Input示例
3
1
1
1
Output示例
A
博弈论中的疑惑理论。/article/9312880.html
例如:3堆石子,每堆1颗。A拿1颗,B拿1颗,此时还剩1堆,所以A可以拿到最后1颗石子。
Input
第1行:一个数N,表示有N堆石子。(1 <= N <= 1000)
第2 - N + 1行:N堆石子的数量。(1 <= A[i] <= 10^9)
Output
如果A获胜输出A,如果B获胜输出B。
Input示例
3
1
1
1
Output示例
A
博弈论中的疑惑理论。/article/9312880.html
#include <stdio.h> #define _MAX 1001 int main(int argc, const char * argv[]) { int N, stone, tag = 0; scanf("%d", &N); while (N--) { scanf("%d", &stone); tag ^= stone; } //tag为0则为后手赢,否则为先手赢 printf("%c\n", tag == 0 ? 'B' : 'A'); return 0; }
相关文章推荐
- 一个数组变换的算法问题-关于前端的分页功能排序(点击/热门)功能
- 简单C++ log 类
- hal层
- 基于指定输入文本的百度地图poi城市检索的使用(思路最重要)
- java并发之Lock
- Java读取properties文件中文乱码问题解决
- 重新认识——CSS Position定位
- 总结
- 根据一个笔试题引出的思考
- 实现这两个接口ModelDriven<T>,Preparable有什么用?
- Hadoop入门的五个进程的理解(二)
- struts2动态方法调用
- 《校园封神榜》个人工作总结——第四天
- Android-启用系统相机拍摄图片并且显示
- 学生管理系统map实现篇
- sql server触发器
- LeetCode之24----Swap Nodes in Pairs
- Jenkins入门系列
- 学习周总结
- CommonJS和AMD规范