E - Competitive Seagulls(博弈)

本文通过分析一个关于小方格涂色的游戏策略,探讨了在特定条件下先手和后手玩家的胜负规律。游戏规则简单,但蕴含了深刻的策略博弈思想,通过数学逻辑推导,得出在除2和3之外的所有情况下,先手玩家可采取必胜策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:Gym - 101350E

题意:n个小方格排成一条线,刚开始都为白色,每次可以选取其中小于n/2(向上取整)的任意素数个涂黑(必须是连续的一段,可以从任意位置取),如果没有满足条件的数,则视为涂1,给出n,谁不能进行操作谁就输,问先手还是后手能赢。

思路:我们可以这样想

  1. 对于给定的长度n我们可以先取中间的一段,使左右两边的白色方格一样多,
  2. 这样后手那个人取其中一边,我们就可以在另一边取和他相同的长度,
  3. 这样我们是必赢的,因为不管奇数还是偶数个,我们可以取2或3使左右两边相等。
  4. 但是对于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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值