• 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
  • 相关阅读:
    vue proxy代理理解
    css样式鲜为人知的属性
    vue中实现元素选中互斥
    站长统计加载慢解决方法
    微信图片预览接口
    移动端兼容问题
    请求头和响应头
    清除缓存方法
    屏幕适配及rem
    清除多个定时器
  • 原文地址:https://www.cnblogs.com/acjiumeng/p/6962243.html
Copyright © 2020-2023  润新知