zoukankan      html  css  js  c++  java
  • April Fools Contest 2017 题解

    趁着上课无聊,来补一补……

    A. Numbers Joke

    直接oeis就好了:http://oeis.org/search?q=numbers+joke&language=english&go=Search

    #include<bits/stdc++.h>
    using namespace std;
    
    long long p[]={	4, 22, 27, 58, 85, 94, 121, 166, 202, 265, 274, 319, 346, 355, 378, 382, 391, 438, 454, 483, 517, 526, 535, 562, 576, 588, 627, 634, 636, 645, 648, 654, 663, 666, 690, 706, 728, 729, 762, 778, 825, 852, 861, 895, 913, 915, 922, 958, 985, 1086, 1111, 1165};
    
    int main(){
        int n;
        cin>>n;
        cout<<p[n-1]<<endl;
    }
    

    B - Kids' Riddle

    16进制中圈圈的个数。。。。

    这TM谁猜得到(微笑)

    #include<bits/stdc++.h>
    using namespace std;
    
    
    char getc(long long p){
        if(p==10)return 'A';
        if(p==11)return 'B';
        if(p==12)return 'C';
        if(p==13)return 'D';
        if(p==14)return 'E';
        if(p==15)return 'F';
        return char(p+'0');
    }
    string get(long long x){
        string s;
        while(x){
            s+=getc(x%16);
            x/=16;
        }
        return s;
    }
    map<char,int> H;
    int main(){
        H['0']=1;
        H['1']=0;
        H['2']=0;
        H['3']=0;
        H['4']=1;
        H['5']=0;
        H['6']=1;
        H['7']=0;
        H['8']=2;
        H['9']=1;
        H['A']=1;
        H['B']=2;
        H['C']=0;
        H['D']=1;
        H['E']=0;
        H['F']=0;
        long long p;
        cin>>p;
        if(p==0){
            cout<<"1"<<endl;
            return 0;
        }
        string s = get(p);
        int ans = 0;
        for(int i=0;i<s.size();i++)
            ans+=H[s[i]];
        cout<<ans<<endl;
    }
    

    C. INTERCALC

    FIND XOR OF LARGEST AND LAST ARRAY ELEMENTS

    #include<bits/stdc++.h>
    using namespace std;
    int n,x,mx;
    int main(){
        scanf("%d",&n);
        for(int i=0;i<n;i++){
            scanf("%d",&x);
            mx=max(x,mx);
        }
        cout<<(x^mx)<<endl;
    }
    

    D - Touchy-Feely Palindromes

    给你个字符串,问你这个字符串在盲文的条件下,是否回文

    #include<bits/stdc++.h>
    using namespace std;
    
    map<char,char>H;
    string s;
    int main(){
        H['3']='3';
        H['4']='6';
        H['5']='9';
        H['6']='4';
        H['7']='7';
        H['8']='0';
        H['9']='5';
        H['0']='8';
    
        cin>>s;
        int flag = 1;
        for(int i=0;i<s.size();i++){
            if(!H.count(s[i]))flag=0;
            else{
                if(H[s[i]]!=s[s.size()-1-i])
                    flag=0;
            }
        }
        if(flag)cout<<"Yes"<<endl;
        else cout<<"No"<<endl;
    }
    

    E - Twisted Circuit

    给一个电路图,然后把OR门看成XOR门,把XOR门看成OR门就好了

    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        int a,b,c,d;
        cin>>a>>b>>c>>d;
        int a1=a^b;
        int b1=c|d;
        int c1=b&c;
        int d1=a^d;
        int a2=a1&b1;
        int b2=c1|d1;
        cout<<(a2^b2)<<endl;
    }
    

    F - Crunching Numbers Just for You

    必须运行超过1秒。。

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn = 1000006;
    int n,a[maxn];
    int main(){
        scanf("%d",&n);
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        for(int i=n;i<maxn;i++){
            a[i]=101;
        }
        for(int i=0;i<100;i++){
            a[n+i]=102+i;
            sort(a,a+maxn);
        }
        for(int i=0;i<n;i++)
            cout<<a[i]<<" ";
        cout<<endl;
    }
    

    G. BF Calculator

    写一个表达式,让你用brainfuck写出答案是多少。

    #include<bits/stdc++.h>
    using namespace std;
    
    string s;
    string get(int p){
        if(p==0){
            return "0";
        }
        int flag = 0;
        if(p<0)flag=1,p=-p;
        string tmp;
        while(p){
            tmp+=(p%10+'0');
            p/=10;
        }
        if(flag)tmp+='-';
        reverse(tmp.begin(),tmp.end());
        return tmp;
    }
    int main(){
        cin>>s;
        int now = 0;
        int num = 0;
        int flag = 0;
        for(int i=0;i<s.size();i++){
            if(s[i]=='+'||s[i]=='-'){
                if(flag==0){
                    now+=num;
                }
                else{
                    now-=num;
                }
                if(s[i]=='+')
                    flag=0;
                else
                    flag=1;
                num=0;
            }else{
                num=num*10+(s[i]-'0');
            }
        }
        if(flag==0){
            now+=num;
        }
        else{
            now-=num;
        }
        string ss = get(now); 
        for(int i=0;i<ss.size();i++){
            for(int j=0;j<ss[i];j++){
                cout<<"+";
            }
            cout<<".";
            cout<<">"<<endl;
        }
    }
  • 相关阅读:
    Python操作MySQL数据库
    Spark学习--Structured Streaming
    YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
    Spark学习--SparkStreaming
    Spark学习--SparkSQL04
    Spark学习--SparkSQL03
    Spark学习--SparkSQL02
    Bootstrap简介
    Linux Shell系列教程之(一)Shell简介
    Linux命令之必须掌握的十条命令
  • 原文地址:https://www.cnblogs.com/qscqesze/p/6678570.html
Copyright © 2011-2022 走看看