zoukankan      html  css  js  c++  java
  • SG函数 2019- 杭师范校赛

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=1e6+10;
    
    int sg[maxn];
    int f[maxn];
    int s[maxn];
    void make_SG()
    {
        memset(sg,0,sizeof(sg));
        int n=200;
        for(int i=1;i<=n;i++)
        {
            memset(s,0,sizeof(s));
            for(int j=0;j<=i;j++)
            {
                if(__gcd(i,j)==1 || i==j ) s[sg[i-j]]=1;
            }
            for(int j=0;;j++)
            {
                if(!s[j]) { sg[i]=j; break; }
            }
        }
        /*for(int i=1;i<=100;i++)
        {
            cout<<i<<"   "<<sg[i]<<endl;
        }*/
    }
    
    int p[maxn];  //  判断 质数
    int prime[maxn];  // 质数
    int SG[maxn];
    int tot=0;
    void make_prime()
    {
        int n=maxn-5;
        SG[1]=1;
        for(int i=2;i<=n;i++)
        {
            if(p[i]==0) {prime[++tot]=i;  SG[i]=tot+1; }
            for(int j=1;j<=tot && i*prime[j]<=n;j++)
            {
                p[i*prime[j]]=1;
                SG[i*prime[j]]=SG[prime[j]];
                if(i%prime[j]==0) break;
            }
        }
    }
    
    
    int main()
    {
        make_SG();
        make_prime();
    
    
        //for(int i=1;i<=100;i++)
        //cout<<sg[i]<<"   "<<SG[i]<<endl;
    
        int T; cin>>T;
        while(T--)
        {
            int n; cin>>n;
            int x=0;
            for(int i=1;i<=n;i++) { int a; cin>>a; x^=SG[a]; }
            if(x==0) cout<<"Long live with King Johann!"<<endl;
            else     cout<<"Subconscious is our king!"<<endl;
        }
    }
  • 相关阅读:
    IPC——信号量
    IPC——命名管道
    IPC——匿名管道
    IPC——信号
    管道和命名管道
    Oracle业务用户密码过期问题的解决
    Oracle获取数据库中的对象创建语句
    RAC禁用DRM特性
    配置Server Side TAF
    同一环境下新建Standby RAC库
  • 原文地址:https://www.cnblogs.com/Andromeda-Galaxy/p/10560468.html
Copyright © 2011-2022 走看看