• zoj 3057 博弈


    思路:对于TT来说,如果数量分别为a a b或 a b a,或 b a a的形式,那么TT必赢,因为TT可以使其成为 a a a的形式,那么不论DD 怎么拿,都是TT最后使其成为a a a 的形式,0 0 0也是a a a的形式,故TT胜。同样,存在必败局。如果a,b,c是先手的必败局,那么将其中某个数加k,或将其中某两个数同时加k,那么就成了先手的必胜局。

    #include<set>
    #include<map>
    #include<cmath>
    #include<queue>
    #include<cstdio>
    #include<vector>
    #include<string>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define pb push_back
    #define mp make_pair
    #define Maxn 100010
    #define Maxm 200010
    #define LL __int64
    #define Abs(x) ((x)>0?(x):(-x))
    #define lson(x) (x<<1)
    #define rson(x) (x<<1|1)
    #define inf 100000
    #define lowbit(x) (x&(-x))
    #define clr(x,y) memset(x,y,sizeof(x))
    #define Mod 1000000007
    using namespace std;
    bool dp[301][301][301];
    void init()
    {
        int i,j,k,r;
        dp[0][0][0]=1;
        for(i=0;i<=300;i++){
            for(j=0;j<=300;j++){
                for(k=0;k<=300;k++){
                    if((i!=j||i!=k||j!=k)&&(i==j||i==k||j==k)){
                        dp[i][j][k]=1;
                        continue;
                    }
                    if(!dp[i][j][k]){
                        for(r=1;r<=300;r++){
                            if(i+r<=300)
                            dp[i+r][j][k]=1;
                            if(j+r<=300)
                            dp[i][j+r][k]=1;
                            if(k+r<=300)
                            dp[i][j][k+r]=1;
                            if(i+r<=300&&j+r<=300)
                            dp[i+r][j+r][k]=1;
                            if(i+r<=300&&k+r<=300)
                            dp[i+r][j][k+r]=1;
                            if(j+r<=300&&k+r<=300)
                            dp[i][j+r][k+r]=1;
                        }
                    }
                }
            }
        }
    }
    int main()
    {
        int a,b,c;
        init();
        while(scanf("%d%d%d",&a,&b,&c)!=EOF){
            printf("%d
    ",dp[a][b][c]);
        }
        return 0;
    }
  • 相关阅读:
    SendMessage 关闭外部程序
    ShellApi 列举正在运行的程序
    SendMessage 关闭显示器
    ShellAPI 自定义系统的关于对话框 about
    if 条件语句
    操作INI文件cpp
    ShellAPI 取得可执行文件的图标
    For 循环 语句
    选择结构语句IF
    SendMessage 关闭计算器
  • 原文地址:https://www.cnblogs.com/wangfang20/p/3342929.html
Copyright © 2020-2023  润新知