zoukankan      html  css  js  c++  java
  • Day11

    题目链接

    思路:考虑第一个人取的方式:

    1.每次能取的次数>= n, 一次取完 first win

    2.每次能取1个,n是奇数 first win

    3.一次取不完,这种情况下也分2种情况

    1)second能一次取完, second win

    2)second不能一次取完,则他取一次使得这个链至少有一个部分是能一次取完的

    若2个部分都是一次取完的,second win

    若1个部分是一次取完的,另一个部分不行,又分两种情况

    #1first选择取可以取完的那一堆,那么状况又回到了second取一堆不可以一次取完的,递归回取

    #2first选择取不可以取完那一堆的,这时候又有2种情况

    $1first取了一次后变成一堆可以一堆不可以,second必可以取不可以的那一堆,又回到上一情况,且此时剩下至少2个可以一次取完的,second win

    $2取了一次后变成2堆可以的,按顺序取完后至少有2个可以一次取完的,second win

    综上,只要不满足1、2条件,first必输

    #include<bits/stdc++.h>
    using namespace std;
    #define lowbit(x) ((x)&(-x))
    typedef long long LL;
    
    void run_case() {
        int n, t;
        cin >> n >> t;
        if((t == 1 && n % 2) || t >= n) cout << ": first
    ";
        else cout << ": second
    ";
    }
    
    int main() {
        ios::sync_with_stdio(false), cin.tie(0);
        int t; cin >> t;
        for(int i = 1; i <= t; ++i) {
            cout << "Case " << i;run_case();
        }
        cout.flush();
        return 0;
    }
    View Code
  • 相关阅读:
    C语言之数据类型(int float double char unsigned )
    c语言的第一个程序
    socket之udp服务器和客户端
    页面置换算法的模拟实现 C
    C算法--入门篇(1)图形输出
    C算法--入门篇(1)查找元素
    C算法--入门篇(1)入门模拟2
    C算法--入门篇(1)入门模拟1
    C算法--黑盒测试
    C算法--复杂度
  • 原文地址:https://www.cnblogs.com/GRedComeT/p/12337738.html
Copyright © 2011-2022 走看看