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;
        }
    }
  • 相关阅读:
    IDEA复制module
    input输入框限制输入数字(含小数)
    毕设周总结---3
    皮尔森相关系数算法
    毕设周总结---2
    毕设周总结---1
    解释器模式实例
    架构模式——解释器模式
    课后作业---质量属性
    软件架构师如何工作
  • 原文地址:https://www.cnblogs.com/Andromeda-Galaxy/p/10560468.html
Copyright © 2011-2022 走看看