April Fools Contest 2017 题解
2017-04-07 16:02
513 查看
趁着上课无聊,来补一补……
这TM谁猜得到(微笑)
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; } }
相关文章推荐
- April Fools Contest 2017 题解&源码(A,数学 B,数学 C,数学 D,字符串 E,数字逻辑 F,排序,卡时间,G,数学)
- April Fools Contest 2017 C. INTERCALC
- April Fools Contest 2017 题解
- April Fools Contest 2018[cf 愚人节专场题解]
- Codeforces April Fools Contest 2017
- April Fools Contest 2017 A
- April Fools Contest 2017 B
- Codeforces April Fools Day Contest 2014(附官方题解)
- April Fools Contest 2017 C
- April Fools Contest 2017 A. Numbers Joke 纯属愚乐
- Codeforces April Fools Contest 2017
- April Fools Contest 2017 A. Numbers Joke
- April Fools Contest 2017 D
- April Fools Contest 2017 E
- April Fools Contest 2017 E. Twisted Circuit
- April Fools Contest 2017 F
- 【April Fools Day Contest 2014G】【愚人节脑洞】On a plane 输出纵坐标平均值
- April Fools Day Contest 2016 B. Scrambled
- CF #April Fools Day Contest 2016 E Out of Controls
- CodeForces April Fools Day Contest 2018 B-A Map of the Cat