April Fools Contest 2017 题解
生活随笔
收集整理的這篇文章主要介紹了
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;elseflag=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;} }轉載于:https://www.cnblogs.com/qscqesze/p/6678570.html
總結
以上是生活随笔為你收集整理的April Fools Contest 2017 题解的全部內容,希望文章能夠幫你解決所遇到的問題。