Gym 101350E Competitive Seagulls

题目大意:
    两只海鸥轮流将白方格涂黑,每次能图连续的P个方格,谁涂最后一个就赢。P应满足:

       (1),L为当前最长的连续白色方格个数。

       (2)若P能去素数,则P只能取素数;否则取1。

   现在输入开始时白方格的个数(都是连着的),要求输出先手胜还是后手胜。(1 ≤ L≤ 107)

思路:

   首先要知道那个是上取整!!!!!!

   初始个数为1时,先手胜;初始个数为2时,后手胜;

   初始个数为3时,后手胜;初始个数为4,5,6,7......时,先手胜。

   规律很简单,先手胜的策略就是:第一次先涂最中间的2个或3个(偶数或奇数时),这样就能把白方格等分成2部分,后手怎么涂先手就怎么涂。

 

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 
 5 using namespace std;
 6 
 7 int T,n;
 8 
 9 int main()
10 {
11     scanf("%d",&T);
12     for(int i=1;i<=T;i++)
13     {
14         scanf("%d",&n);
15         if((n==2)||(n==3))
16         {
17             printf("second\n");
18         }
19         else
20         {
21             printf("first\n");
22         }
23     }
24     return 0;
25 }
View Code

 

posted @ 2018-10-15 22:57  liqgnonqfu  阅读(124)  评论(0编辑  收藏  举报