zoukankan      html  css  js  c++  java
  • 小花梨的取石子游戏(思维)

    看从当前点到到不是1的点的位置,从奇偶性判断

    代码:

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<queue>
    #include<stack>
    #include<map>
    #include<set>
    #include<vector>
    #include<cmath>
    
    const int maxn=1e5+5;
    typedef long long ll;
    using namespace std;
    int a[maxn*2]; 
    int main()
    {
        int n;
        cin>>n;
        int flag=0;
        for(int t=0;t<n;t++)
        {
            scanf("%d",&a[t]);
            if(a[t]!=1)
            {
                flag=1;
            }
        } 
        if(flag==0)
        {
            if(n%2==0)
            {
                for(int t=0;t<n;t++)
                {
                    printf("Second
    ");
                }
            }
            else
            {
                for(int t=0;t<n;t++)
                {
                    printf("First
    ");
                }    
            }
        }
        else
        {
        
        for(int t=n;t<2*n;t++)
        {
            a[t]=a[t-n];
        }
        if(n==1)
        {
            printf("First
    ");
            return 0;
        }
        for(int t=0;t<n;t++)
        {
            if(a[t]==1)
            {
            int ans=0;
            for(int j=t;j<t+n;j++)
            {
              if(a[j]==1)
              {
                  ans++;
              }    
              else
              {
                  break;
              }
            }
            if(ans%2==0)
            {
                printf("First
    ");
            }
            else
            {
                printf("Second
    ");
            }
            for(int j=0;j<ans-1&&t+j+1<n;j++)
            {
                if(ans%2==0&&j%2==0)
                {
                    printf("Second
    ");
                }
                else if(ans%2==0&&j%2==1)
                {
                    printf("First
    ");
                }
                else if(ans%2==1&&j%2==0)
                {
                    printf("First
    ");
                }
                else if(ans%2==1&&j%2==1)
                {
                    printf("Second
    ");
                }
            }
            //cout<<ans<<endl;
            t=t+ans-1;
            }
            else
            {
                printf("First
    ");
            }
        }
        }
    
        return 0;
    }
  • 相关阅读:
    java开学第一周测试自我感想
    暑假第八周进度报告
    暑假第七周进度报告
    暑假第六周进度报告
    暑假第五周进度报告
    暑假第四周进度报告
    暑假第三周进度报告
    暑假第二周进度报告
    《大道至简》读后感
    暑假第一周进度报告
  • 原文地址:https://www.cnblogs.com/Staceyacm/p/10887053.html
Copyright © 2011-2022 走看看