• hdu1847sg函数


    刚开始因为没注意到f是从0开始的导致wa了几次,f遍历的时候从0到f【j】<=i

    这个题只有一个子情况,求出sg值直接判断就好了

    #include<map>
    #include<set>
    #include<cmath>
    #include<queue>
    #include<stack>
    #include<vector>
    #include<cstdio>
    #include<cassert>
    #include<iomanip>
    #include<cstdlib>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define pi acos(-1)
    #define ll long long
    #define mod 1000000007
    #define ls l,m,rt<<1
    #define rs m+1,r,rt<<1|1
    #pragma comment(linker, "/STACK:1024000000,1024000000")
    
    using namespace std;
    
    const double g=10.0,eps=1e-9;
    const int N=1000+10,maxn=111117,inf=11111;
    
    int f[N],sg[N],Hash[N];
    void getsg(int n)
    {
        memset(sg,0,sizeof sg);
        for(int i=1;i<=n;i++)
        {
            memset(Hash,0,sizeof Hash);
            for(int j=0;f[j]<=i;j++)
                Hash[sg[i-f[j]]]=1;//后继状态的集合
            for(int j=0;j<=n;j++)//找最小的不属于该集合的非负整数
                if(Hash[j]==0)
                {
                    sg[i]=j;
                    break;
                }
        }
    }
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        int n;
        for(int i=0;i<=15;i++)f[i]=pow(2,i);
        getsg(1000);
        while(cin>>n){
            if(sg[n]!=0)cout<<"Kiki"<<endl;
            else cout<<"Cici"<<endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    入门学习
    SQL语句
    Jmeter录制badboy
    post方式提交数据
    get向服务器提交数据
    手机端解析json
    生成JSON字符串
    新闻客户端
    从网络下载的图片加缓存功能
    消息队列机制messageQuene
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/6962243.html
Copyright © 2020-2023  润新知