计蒜客 《程序设计竞赛体验课程》第一部分 快速提升代码能力
Posted dyhaohaoxuexi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计蒜客 《程序设计竞赛体验课程》第一部分 快速提升代码能力相关的知识,希望对你有一定的参考价值。
这一部分内容比较简单 直接把代码发上来 不想自己写的同学可以直接抱走~
#include<bits/stdc++.h> using namespace std; int main() { int n,x,y; cin>>n; while(n--) { cin>>x>>y; cout<<x+y<<endl; } }
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int a=1,b=1,c,i; if(n>2) { for(i=3;i<=n;i++) { c=(a+b)%1000000007 ; a=b; b=c; } cout<<c<<endl; } else cout<<1<<endl; }
#include<bits/stdc++.h> using namespace std; int main() { int n,m,i,j,a[205][205]; cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cin>>a[i][j]; } for(i=1;i<=m;i++) { cout<<a[n][i]; for(j=n-1;j>=1;j--) { cout<<‘ ‘<<a[j][i]; } cout<<endl; } }
#include<bits/stdc++.h> using namespace std; int n,m,sums,anss,i,j,a[55][55],s[55][55],k; int main() { cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { cin>>a[i][j]; s[i][j]=s[i-1][j]+a[i][j]; } anss=-0x7ffffff; for(i=1;i<=n;i++) for(j=i;j<=n;j++) { sums=0; for(k=1;k<=m;k++) { if(sums>=0) sums+=s[j][k]-s[i-1][k]; else sums=s[j][k]-s[i-1][k]; if(sums>anss) anss=sums; } } cout<<anss<<endl; }
#include<bits/stdc++.h> using namespace std; int main() { int n,a,b,c,d; cin>>n; for(a=0;a*a<n;a++) { for(b=a;b*b+a*a<n;b++) { for(c=b;c*c+b*b+a*a<n;c++) { if(sqrt(n-a*a-b*b-c*c)==(int)sqrt(n-a*a-b*b-c*c)) { cout<<a<<‘ ‘<<b<<‘ ‘<<c<<‘ ‘<<(int)sqrt(n-a*a-b*b-c*c)<<endl; return 0; } } } } }
#include<bits/stdc++.h> using namespace std; int n,lena,lenb,ai,bi,jin,lenmax,p,q,i,t=0; int anss[100000]; int main() { memset(anss,0,sizeof(anss)); jin=0; string a; string b; cin>>a; cin>>b; lena=a.size(); lenb=b.size(); lenmax=max(lena,lenb); p=lena-1; q=lenb-1; for(i=lenmax-1;i>=0;i--) { if(p<0) ai=‘0‘; else ai=a[p]; if(q<0) bi=‘0‘; else bi=b[q]; anss[i]=(ai-‘0‘+bi-‘0‘+jin)%10; jin=(ai-‘0‘+bi-‘0‘+jin)/10; p--; q--; } if(jin) cout<<jin; for(i=0;i<lenmax;i++) cout<<anss[i]; cout<<endl; }
#include<iostream> #include<string> #include<string.h> #include<algorithm> using namespace std; int main(){ string A,B; int ReverseA[1000+5]; int ReverseB[1000+5]; int a[1000+5]; memset(a,0,sizeof(a)); cin>>A>>B; int lenA = A.length(); int lenB = B.length(); // 得到逆转数组 for(int i=0;i<lenA;i++) ReverseA[i] = A[lenA-i-1]-‘0‘; for(int i=0;i<lenB;i++) ReverseB[i] = B[lenB-i-1]-‘0‘; // 计算 for(int i=0;i<lenA;i++) for(int j=0;j<lenB;j++){ a[i+j] += ReverseA[i]*ReverseB[j]; // 处理进位 if(a[i+j]>=10){ a[i+j+1] += a[i+j]/10; a[i+j] %= 10; } } // 控制输出 bool flag = false; for(int i=lenA+lenB;i>=0;i--){ if(a[i] && !flag || i==0) // 答案为 0 的特殊情况 flag = true; else if(!a[i] && !flag) continue; cout<<a[i]; } return 0; }
#include<bits/stdc++.h> using namespace std; set<int>a; int main() { int n,x; cin>>n; while(n--) { cin>>x; a.insert(x); } cout<<a.size()<<endl; set<int>::iterator it; bool flag=true; for(it=a.begin();it!=a.end();it++) { if(flag) { cout<<*it; flag=!flag; } else cout<<‘ ‘<<*it; } }
#include<bits/stdc++.h> using namespace std; bool cmp(int a,int b) { return a>b; } int main() { int n,i,l1,l2,r1,r2,a[100005]; cin>>n>>l1>>r1>>l2>>r2; for(i=1;i<=n;i++) cin>>a[i]; sort(a+l1,a+r1+1); sort(a+l2,a+r2+1,cmp); cout<<a[1]; for(i=2;i<=n;i++) { cout<<‘ ‘<<a[i]; } }
#include<bits/stdc++.h> using namespace std; stack<int>a; int main() { int x,n,r,flag=0; cin>>n>>r; if(n<0) { flag=1; n=abs(n); } while(n>0) { a.push(n%r); n=n/r; } if(a.empty()) { cout<<0<<endl; return 0; } if(flag==1) cout<<‘-‘; while(!a.empty()) { x=a.top(); if(x>=10) cout<<char(x-10+‘A‘); else cout<<x; a.pop(); } }
#include<bits/stdc++.h> using namespace std; int sum=0; queue <int> qq; void panduan (int n) { string s; int m=n; while(m) { s+=m%10+‘0‘; m=m/10; } string k=s; reverse(k.begin(),k.end()); if(s==k) { //cout<<sum<<endl; //cout<<k<<endl; qq.push(n); return; } else { //cout<<"s:"<<s<<‘ ‘<<"k:"<<k<<endl; int l=0; for(int i=0;i<s.size();i++) { //cout<<pow(10,i)*(k[i]-‘0‘)<<endl;+ l+=pow(10,i)*(k[i]-‘0‘); } //cout<<l<<endl; //cout<<n<<"--->"; qq.push(n); sum++; panduan(l+n); } } int main() { int n; cin>>n; panduan(n); cout<<sum<<endl; while(sum>=1) { cout<<qq.front()<<"--->"; qq.pop(); sum--; } cout<<qq.front()<<endl; }
#include<bits/stdc++.h> using namespace std; int x,y; void go(int f,int l) { if(f==1) { x+=l; } else if(f==2) { y+=l; } else if(f==3) { x-=l; } else if(f==4) { y-=l; } } int main() { int n,s; cin>>n; int f=1; string str; while(n--) { cin>>str>>s; if(str=="forward") { go(f,s); //cout<<x<<‘ ‘<<y<<‘ ‘<<f<<endl; } else if(str=="back") { if(f==1) go(f=3,s); else if(f==2) go(f=4,s); else if(f==3) go(f=1,s); else if(f==4) go(f=2,s); //cout<<x<<‘ ‘<<y<<‘ ‘<<f<<endl; } else if(str=="left") { if(f==1) go(f=2,s); else if(f==2) go(f=3,s); else if(f==3) go(f=4,s); else if(f==4) go(f=1,s); //cout<<x<<‘ ‘<<y<<‘ ‘<<f<<endl; } else if(str=="right") { if(f==1) go(f=4,s); else if(f==2) go(f=1,s); else if(f==3) go(f=2,s); else if(f==4) go(f=3,s); //cout<<x<<‘ ‘<<y<<‘ ‘<<f<<endl; } } cout<<x<<‘ ‘<<y<<endl; }
#include<bits/stdc++.h> using namespace std; int main() { int x,temp,anss; char c; cin>>x; temp=x; anss=0; while(cin>>c>>x) { if(c==‘+‘) { anss+=temp%10000; anss=anss%10000; temp=x%10000; } else if(c==‘*‘) { temp*=x%10000; temp=temp%10000; } //cout<<anss<<endl; } anss+=temp%10000; cout<<anss%10000<<endl; }
#include<bits/stdc++.h> using namespace std; int i,sum,flag,a[20],s[20],j,x; int main() { for(i=1;i<=5;i++) { cin>>a[i]; s[a[i]]++; } for(i=1;i<=13;i++) { if(s[i]>=4) { cout<<"quadra bomb orz"<<endl; return 0; } } sum=0; flag=0; for(i=1;i<=5;i++) { if(a[i]>=5) { flag=1; break; } sum+=a[i]; } if(flag==0&&sum<=10) { cout<<"penta calf"<<endl; return 0; } sum=0; for(i=1;i<=5;i++) { if(a[i]>10) { a[i]=10; } sum+=a[i]; } for(i=1;i<=4;i++) { for(j=i+1;j<=5;j++) { if((a[i]+a[j])%10==0&&((sum-a[i]-a[j])%10==0)) { cout<<"you can you up"<<endl; return 0; } } } for(x=1;x<=9;x++) { for(i=1;i<=4;i++) { for(j=i+1;j<=5;j++) { if((a[i]+a[j])%10==x&&((sum-a[i]-a[j])%10==0)) { cout<<"too young too simple:calf "<<x<<endl; return 0; } } } } cout<<"gg"<<endl; }
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <set> using namespace std; char pic[10][5][2]= { // 第1行 第2行 第3行 第4行 第5行(1,3,5行,也就是日字的三横只有一笔,所以pic[1~10][{1,3,5}][1]=‘ ‘) {{‘-‘,‘ ‘},{‘|‘,‘|‘},{‘ ‘,‘ ‘},{‘|‘,‘|‘},{‘-‘,‘ ‘}},//数字0的第一行,第二行,第三行…… {{‘ ‘,‘ ‘},{‘ ‘,‘|‘},{‘ ‘,‘ ‘},{‘ ‘,‘|‘},{‘ ‘,‘ ‘}},//数字1的第一行,第二行,第三行…… {{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘-‘,‘ ‘},{‘|‘,‘ ‘},{‘-‘,‘ ‘}}, {{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘-‘,‘ ‘}}, {{‘ ‘,‘ ‘},{‘|‘,‘|‘},{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘ ‘,‘ ‘}}, {{‘-‘,‘ ‘},{‘|‘,‘ ‘},{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘-‘,‘ ‘}}, {{‘-‘,‘ ‘},{‘|‘,‘ ‘},{‘-‘,‘ ‘},{‘|‘,‘|‘},{‘-‘,‘ ‘}}, {{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘ ‘,‘ ‘},{‘ ‘,‘|‘},{‘ ‘,‘ ‘}}, {{‘-‘,‘ ‘},{‘|‘,‘|‘},{‘-‘,‘ ‘},{‘|‘,‘|‘},{‘-‘,‘ ‘}}, {{‘-‘,‘ ‘},{‘|‘,‘|‘},{‘-‘,‘ ‘},{‘ ‘,‘|‘},{‘-‘,‘ ‘}} }; int main() { int ex,cnt=0,num[10]; char str[100]; cin>>ex; cin>>str; for(int i=0;str[i]!=‘