zoukankan      html  css  js  c++  java
  • 51NOD 1070 Bash游戏 V4

    有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。
    例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。
    Bash游戏两连发。
    还是打表找规律。通过打表我们可知当n为满足斐波那契数的时候。B才赢。

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    #include<map>
    #include<set>
    #include<vector>
    using namespace std;
    const int N=10000;
    const int maxn=1e9+10;
    int f[N];
    int n; 
    int main()
    {
        f[0]=1;
        f[1]=1;
        int i;
        for(i=2;;i++)
        {
          f[i]=f[i-1]+f[i-2];
          if(f[i]>maxn)
          break;
        }
    
        int T;
        scanf("%d",&T);
        while(T--)
        {
            scanf("%d",&n);
            int flag=0;
            for(int j=0;j<i;j++)
            {
                if(f[j]==n)
                {
                    flag=1;
                    break;
                }
            }
            if(flag)
            printf("B
    ");
            else
            printf("A
    ");  
        }
        return 0;
    }
    
    
  • 相关阅读:
    AD预测论文研读系列2
    hdu 5795
    sg函数的应用
    二分查找
    快速幂
    筛选法素数打表
    多校hdu-5775 Bubble sort(线段树)
    多校hdu5754(博弈)
    多校hdu5738 寻找
    多校hdu5726 线段树+预处理
  • 原文地址:https://www.cnblogs.com/NaCl/p/9580110.html
Copyright © 2011-2022 走看看