2020.11.6-vj补题
A - A
题解:按输入的顺序输出对应的下标即可,定义一个数组,将输入的作为下标,下标为值,最后依次输出即可;
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int s[n+5],i,a; for(i=1;i<=n;i++) { cin>>a; s[a]=i; } for(i=1;i<=n;i++) { if(i==1)cout<<s[i]; else cout<<" "<<s[i]; } cout<<endl; }
C - C
题解:先将数组排序,如果最大值不为1,则将其设为1,否则设为2,在进行一次排序,输出即可
#include<bits/stdc++.h> using namespace std; int main() { long long n; cin>>n; long long s[n+5],i; for(i=0;i<n;i++) { scanf("%lld",&s[i]); } sort(s,s+n); if(s[n-1]!=1)s[n-1]=1; else s[n-1]=2; sort(s,s+n); for(i=0;i<n;i++) { if(i==0)printf("%lld",s[i]); else printf(" %lld",s[i]); } cout<<endl; }
D - D
题解:先将字符串中所有字符转换为小写字母,再在遍历时将元音赋值为 ‘0’,输出时不为‘0’的就直接输出“.”+字母即可
#include<bits/stdc++.h> using namespace std; int main() { string s; cin>>s; int n; n=s.size(); for(int i=0;i<n;i++) { if(s[i]>='A'&&s[i]<='Z')s[i]+=32; if(s[i]=='a'||s[i]=='o'||s[i]=='e'||s[i]=='y'||s[i]=='u'||s[i]=='i')s[i]='0'; } for(int i=0;i<n;i++) { if(s[i]!='0')cout<<"."<<s[i]; } cout<<endl; }
E - E
CodeForces - 118B
题解:先输出上半部分(n+1)行,第一行空格为n*2个,随后每行空格数减一,每行从0还是输出直到该行数i-1为止,在从i-1输出到0换行,同理输出
下半部分先根据上半部分计算出下半部分第一行的空格数输出,然后每行空格数加2,依照上半部分同理输出即可
#include<bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int m=n; int w; for(int i=1;i<=n+1;i++) { for(int j=0;j<m*2;j++)cout<<" "; m-=1; for( w=0;w<i;w++) { if(w==0)cout<<w; else cout<<" "<<w; } if(w==0)cout<<endl; else { for(int q=w-2;q>=0;q--) { if(q==w-1)cout<<q; else cout<<" "<<q; } cout<<endl; } } //cout<<m<<endl; m+=2; for(int i=n;i>=1;i--) { for(int j=0;j<=m;j++)cout<<" "; m+=2; for(w=0;w<=i-1;w++) { if(w==0)cout<<w; else cout<<" "<<w; } if(w==0)cout<<endl; else { for(int q=w-2;q>=0;q--) { if(q==w-1)cout<<q; else cout<<" "<<q; } cout<<endl; } } }
B - B
#include<bits/stdc++.h> using namespace std; int main() { long a,c,ct=0,i=0; scanf("%ld%ld",&a,&c); while(a!=0 || c!=0) { ct+=(c%3-a%3+3)%3*pow(3,i);//**/ a/=3; c/=3; i++; } printf("%ld\n",ct); return 0; }

浙公网安备 33010602011771号