本文主要是介绍UVA10165 Stone Game【Nim游戏】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Jack and Jim are playing an interesting stone game. At the beginning of the game there are N pile(s) of stones. Each pile has Pi (i = 1..N, 1 ≤ Pi ≤ 2 ∗ 10^9) stones. They take turns to take away some of the stones. There are some rules: they must choose one pile at a time. They can take away any number of stones except 0, of course, not bigger than the number of stones in the pile. One who takes away the last stone will win the game. Jack is the first to fetch the match, and Jim is the second. Now Jack asks you for help, to decide while facing some initializations whether he is sure to win or not.
Input
The input file contains several scenarios. Each of them consists of 2 lines:
The first line consists of a number N. The second line consists of N numbers, meaning Pi (i = 1..N).
There is only one space between two border numbers.
The input file is ended with N = 0.
Output
For each scenario, print a line containing ‘Yes’ if he is sure to win, or ‘No’ otherwise.
Sample Input
1
100
3
1 5 1
4
1 1 1 1
0
Sample Output
Yes
Yes
No
问题链接:UVA10165 Stone Game
问题简述:(略)
问题分析:
这是一个经典的Nim游戏问题。
程序说明:(略)题记:(略)
参考链接:(略)
/* UVA10165 Stone Game */#include <iostream>using namespace std;int main()
{int n, a;while(~scanf("%d", &n) && n) {int ans = 0;for(int i=0; i<n; i++) {scanf("%d", &a);ans ^= a;}printf("%s\n", ans ? "Yes" : "No");}return 0;
}
这篇关于UVA10165 Stone Game【Nim游戏】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!