Problem 1604 - Play Apple
Time Limit: 1000MS
Memory Limit: 65536KB
Total Submit: 432 Accepted: 173 Special Judge: No
Total Submit: 432 Accepted: 173 Special Judge: No
Description
There are N apples. Two people take turns to either:
1. Divide the apple into two piles with different numbers.
2. The other people selects a pile of apples as the beginning of the next turn.
If someone can not meet the requirements, he is lost. Will the first one win the game if both use the best strategy?
Input
There are multiple test cases.
The first line of each case contains a integer N. ( 1 <= N <= 1000000000 )
The first line of each case contains a integer N. ( 1 <= N <= 1000000000 )
Output
If the first person will win, output “Yes”. Otherwise, output “No”.
Sample Input
2
3
4
3
4
Sample Output
No
Yes
No
//题意:
给你一堆苹果的个数,两个人依次将苹果分为个数不同的两堆,如果不能再分,那么就会输了这场比赛,你是第一个分,问你是否会赢得比赛?
//思路:
通过模拟可以找出有一个必输点(n-1)%3==0,找到这个规律就可以写这道题了。
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<map>
#include<queue>
#include<stack>
#include<set>
#include<algorithm>
#include<iostream>
#define INF 0x3f3f3f3f
#define ull unsigned long long
#define ll long long
#define IN __int64
#define N 100010
#define M 1000000007
using namespace std;
int main()
{
ll n;
while(scanf("%lld",&n)!=EOF)
{
if(n == 1 || n == 2)
puts("No");
else if(n == 3)
puts("Yes");
else
{
if((n - 1) % 3 == 0)
puts("No");
else
puts("Yes");
}
}
return 0;
}