zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    如何打造优秀的电商网页,吸引更多人“买买买”?
    快速排序
    JUnit单元测试
    算法学习(归并排序)
    用于理解Java的前8个图表
    时间与字符串的转化
    spring 的 切片Aspect
    过滤器 ;spring拦截器 切片 小结
    spring data jpa 注解
    mysql 解除安全模式
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/6962243.html
Copyright © 2011-2022 走看看