题目链接:Gym - 101350E
题意:n个小方格排成一条线,刚开始都为白色,每次可以选取其中小于n/2(向上取整)的任意素数个涂黑(必须是连续的一段,可以从任意位置取),如果没有满足条件的数,则视为涂1,给出n,谁不能进行操作谁就输,问先手还是后手能赢。
思路:我们可以这样想
- 对于给定的长度n我们可以先取中间的一段,使左右两边的白色方格一样多,
- 这样后手那个人取其中一边,我们就可以在另一边取和他相同的长度,
- 这样我们是必赢的,因为不管奇数还是偶数个,我们可以取2或3使左右两边相等。
- 但是对于2和3不同,只有这两种情况我们是先手必输的。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<map>
#include<set>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
if(n == 2 || n == 3)
cout << "second" << endl;
else
cout << "first" << endl;
}
return 0;
}