重庆市第九届大学生程序设计大赛校内摸底测试题-部分答案

版权声明:本人菜鸟一只,如文章有错误或您有高见,请不吝赐教 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;
}

关键:找不同的人(每一楼唯一下的人)

猜你喜欢

转载自blog.csdn.net/qq_41138935/article/details/83785981