版权声明:本人菜鸟一只,如文章有错误或您有高见,请不吝赐教 https://blog.csdn.net/qq_41138935/article/details/83785981
自己写的代码,暂时还没技术保证是最好的。
题目一、字母方阵
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
char c[20005][205];
int main(){
int m,n;
int i=0,j=0;
cin>>m>>n;
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
c[i][j]='0';
}
}
char t='A';
int x=1;
c[0][0]='A';
while(x<m*n){
while(j+1<n&&c[i][j+1]=='0'){
c[i][++j]=++t; x++;
if(t>='Z')
t='A'-1;
}
while(i+1<m&&c[i+1][j]=='0'){
c[++i][j]=++t;x++;
if(t>='Z')
t='A'-1;
}
while(j-1>=0&&c[i][j-1]=='0'){
c[i][--j]=++t; x++;
if(t>='Z')
t='A'-1;
}
while(i-1>=0&&c[i-1][j]=='0'){
c[--i][j]=++t; x++;
if(t>='Z')
t='A'-1;
}
}
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
printf("%c",c[i][j]);
}
cout<<endl;
}
return 0;
}
有时间优化。
题目二、红蓝军队
人一多,关系就不好表示了。
题目三、统计数字
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int arr[10];
int main(){
long long a,b,i;
cin>>a>>b;
memset(arr,0,sizeof(a));
for(i=a;i<=b;i++){
int temp=i;
while(temp>0){
int c=temp%10;
arr[c]++;
temp/=10;
}
}
for(int j=0;j<10;j++)
cout<<arr[j]<<" ";
return 0;
}
取每一位统计。题目给的数据量很大,当9位以上数字时,就超时了。
题目四、AI时代的神人工号
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main(){
int n;
string str;
cin>>n;
while(n-->0){
cin>>str;
cout<<"6";
for(int t=7;t<str.length();t++){
cout<<str[t];
}
cout<<endl;
}
return 0;
}
真的这么简单?
题目五、电梯里的爱情
#include<cstdio>
#include<set>
#include<algorithm>
using namespace std;
set<int> arr;
int ans;
int main(){
int c,n,_max;
scanf("%d",&c);
while(c--){
_max=0;
arr.clear();
scanf("%d",&n);
for(int i=0;i<n;i++){
int l;
scanf("%d",&l);
_max=max(_max,l);
arr.insert(l);
}
printf("%d\n",10*_max+arr.size()*6+(n-arr.size()));
}
return 0;
}
关键:找不同的人(每一楼唯一下的人)