Game
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1770 Accepted Submission(s): 1089
Problem Description
Alice and Bob are playing a game.
The game is played on a set of positive integers from 1 to n.
In one step, the player can choose a positive integer from the set, and erase all of its divisors from the set. If a divisor doesn't exist it will be ignored.
Alice and Bob choose in turn, the one who cannot choose (current set is empty) loses.
Alice goes first, she wanna know whether she can win. Please judge by outputing 'Yes' or 'No'.
The game is played on a set of positive integers from 1 to n.
In one step, the player can choose a positive integer from the set, and erase all of its divisors from the set. If a divisor doesn't exist it will be ignored.
Alice and Bob choose in turn, the one who cannot choose (current set is empty) loses.
Alice goes first, she wanna know whether she can win. Please judge by outputing 'Yes' or 'No'.
Input
There might be multiple test cases, no more than 10. You need to read till the end of input.
For each test case, a line containing an integer n. (1≤n≤500)
For each test case, a line containing an integer n. (1≤n≤500)
Output
A line for each test case, 'Yes' or 'No'.
Sample Input
1
Sample Output
Yes
题意:
在一个步骤中,玩家可以从集合中选择正整数,并从集合中删除其所有除数。 如果除数不存在,则将被忽略。
爱丽丝和鲍勃依次选择那个不能选择的人(当前集合是空的)输了。
爱丽丝先走了,她想知道她是否能赢。 请输出“是”或“否”来判断。
题解:
考虑将游戏变成初始时只有2~n,如果先手必胜的话,那么先手第一步按这样取就获胜了;如果后手必胜的话,那
么先手第一步取走1就获胜了。所以全输出Yes就行了。
代码如下:
#include "iostream" using namespace std; int main() { int n; while (cin>>n){ cout<<"Yes"<<endl; } return 0; }