zoukankan      html  css  js  c++  java
  • Number Game

    题意:

    给出同一个数 (n) ((1leq n leq 10^9)),两个人玩游戏,有两种操作:
    1.除以一个大于 (1) 的奇数因子
    2.当 (n>1) 时,可以减 (1)
    无法操作的人输。
    传送门

    分析:

    题目想复杂了,首先可以发现:
    (n=1),必输;
    (n=2),必胜;
    (n>1& & n) 为奇数,必胜;
    剩下对 (n) 为大于 (2) 的偶数的情况进行讨论:如果 (n) 有一个奇数的因子 (a),除以该因子的得到的数为is (b),是偶数。但偶数的情况不确定,那么,如何判断呢?当 (b) 为必胜时,那么 (b) 一定可以分解成一个奇数乘一个必败的偶数的形式,把此时得到的奇数和上一步的奇数合并得到一个更大的奇数,即当 (b) 有一个奇数因子,且除该因子的结果不为 (2),则必胜 (b) 为必胜。 如果 (b) 除奇数因子得到的偶数为必胜的,那么该偶数一定可以通过再次分解得到一个奇数和一个必败偶数。而只有该偶数为 (2) 时是不可分解的。

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int t,n;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            if(n==1) printf("FastestFinger
    ");
            else if(n==2) printf("Ashishgup
    ");
            else if(n%2==1) printf("Ashishgup
    ");
            else
            {
                int f=0;
                for(int i=2;i*i<=n;i++)
                {
                    if(n%i) continue;
                    if((i&1)&&(n/i)!=2) f=1;
                    if(((n/i)&1)&&i!=2) f=1;
                }
                if(f) printf("Ashishgup
    ");
                else printf("FastestFinger
    ");
            }
        }
        return 0;
    }
    
    
  • 相关阅读:
    Mac如何自定义本地化文件夹名
    Mac如何升级自带的vim
    0. GC 前置知识
    Git如何修改一个过去的Commit
    1. GC标记-清除算法(Mark Sweep GC)
    防火墙、WAF、IPS、IDS都是什么
    Python dir和vars的区别
    【Kafka】Kafka数据可靠性深度解读
    Java网络编程基础之TCP粘包拆包
    【Kafka】Consumer配置
  • 原文地址:https://www.cnblogs.com/1024-xzx/p/13189216.html
Copyright © 2011-2022 走看看