• 博弈取石子


    /*有一堆石子,A,B两人轮流从中取出石子,每次取出的石子数目只能为1,3,7或8,最后一枚石子谁取到就是输方。
    A,B两人都足够聪明,不会做出错误的判断。现给出一定数目的石子,A先取石子,计算A最终是输是赢,赢用1表示,输用0表示.
    输入描述
    第一行为一个整数n(0< n <=100),表示玩n局,接下来n行每行有一个整数,表示对应的局提供的石子数(不大于10000),
    
    输出描述
    编程输出A对应的n局是赢是输,赢输出1,输输出0.
    
    输入样例
    3
    1
    3
    10
    
    输出样例
    0
    0
    1*/
    #include<stdio.h> 
    void fun(int a){  
        int s[1000]={0};  
        s[0]=0;  
        s[1]=0;  
        s[2]=1;  
        s[3]=0;  
        s[4]=1;  
        s[5]=0;  
        s[6]=1;  
        s[7]=0;  
        s[8]=1;  
        for(int i=9;i<a+1;i++){  
            if(s[i-1]==0||s[i-3]==0||s[i-7]==0||s[i-8]==0)  
                s[i]=1;  
            else  
                s[i]=0;  
        }  
        printf("%d
    ",s[a]);  
    }  
    int main(){  
        int i,n,a[100];  
        scanf("%d",&n);  
        for(i=0;i<n;i++){  
            scanf("%d",&a[i]);  
            fun(a[i]);  
        }  
        return 0;  
    }  
  • 相关阅读:
    CF1117G Recursive Queries
    P6604 [HNOI2016]序列 加强版
    高级图论
    P7708「Wdsr-2.7」八云蓝自动机 Ⅰ
    ISIJ2020 游记
    计算几何笔记 (模板)
    AC自动机学习笔记
    KMP学习笔记
    treap学习笔记
    HolyK学长的杂题选讲
  • 原文地址:https://www.cnblogs.com/tt-t/p/6179943.html
Copyright © 2020-2023  润新知