zoukankan      html  css  js  c++  java
  • II play with GG

    https://ac.nowcoder.com/acm/contest/338/I

    题解:首先轮到出手的时候如果在(0,0)上肯定是输的,而(0,1)(1,0)(0,2)(2,0)(1,1)肯定是赢的;

    往上递推,某一个(x,y)如果可以走的(x-1,y)(x,y-1)(x-1,y-1)三点都是必输的,那么在(x,y)的人必输。

     
    借大佬代码一用

    #include <bits/stdc++.h>
    #include<iostream>
    #include<algorithm>
    #include<cstdlib>
    #include<cstring>
    #include<cstdio>
    #include<string>
    #include<vector>
    #include<bitset>
    #include<queue>
    #include<deque>
    #include<stack>
    #include<cmath>
    #include<list>
    #include<map>
    #include<set>
    //#define DEBUG
    #define RI register int
    using namespace std;
    typedef long long ll;
    //typedef __int128 lll;
    const int N=1000+10;
    const int MOD=1e9+7;
    const double PI = acos(-1.0);
    const double EXP = 1E-8;
    const int INF = 0x3f3f3f3f;
    int t,n,m,k,q,ans;
    bool a[N][N];
    char str;
    int main()
    {
    #ifdef DEBUG
        freopen("input.in", "r", stdin);
        //freopen("output.out", "w", stdout);
    #endif
        scanf("%d%d",&n,&m);
        a[0][0]=0;
        a[1][0]=a[0][1]=1;
        a[1][1]=1;
        for(int i=0; i<=n; i++)
        {
            for(int j=0; j<=m; j++)
            {
                if(i-1>=0&&j-1>=0)
                {
                    if(a[i][j-1]&&a[i-1][j]&&a[i-1][j-1])
                        a[i][j]=0;
                    else
                        a[i][j]=1;
                }
                else if(i-1>=0)
                {
                    if(a[i-1][j])
                        a[i][j]=0;
                    else
                        a[i][j]=1;
                }
                else if(j-1>=0)
                {
                    if(a[i][j-1])
                        a[i][j]=0;
                    else
                        a[i][j]=1;
                }
            }
    
        }
    
        if(a[n][m])
        {
            cout << "ii" << endl;
        }
        else
        {
            cout << "gg" << endl;
        }
        //cout << "Hello world!" << endl;
        return 0;
    }
    View Code

     待补充

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int m,n;
        cin >> m >>n;
        if(min(m,n)%2) cout <<"ii";
        else if ((max(m,n)-min(m,n))%2==0) cout <<"gg";
        else cout <<"ii";
        
        return 0; 
    }
    View Code

    当 全为奇数则 ii,反之gg

  • 相关阅读:
    大话西游·『一生所爱』
    大话西游·『一生所爱』
    大话西游·『一生所爱』
    2013年终的总结
    2013年终的总结
    2013年终的总结
    Python高效编程技巧
    Python高效编程技巧
    Python高效编程技巧
    分分钟搞定Python之排序与列表
  • 原文地址:https://www.cnblogs.com/DWVictor/p/10229965.html
Copyright © 2011-2022 走看看