昌航程序设计竞赛初赛(周五晚19点)

本文介绍了昌航程序设计竞赛初赛的多个题目,包括再见a+b、强者为王、剪刀石头布、复读机dh、解方程、k轮冒泡法排序等,涉及字符串处理、正则表达式应用、数学逻辑和算法实现。

昌航程序设计竞赛初赛(周五晚19点)
7-2 再见a+b (20分)
输入两个整数 a,b,输出他们的和,不过输入有一点点的麻烦哦

格式是zwg:数字a cgl:数字b,中间以空格分隔

具体参照输入输出样例

输入样例:
zwg:1 cgl:2
输出样例:
3

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
int main(){
	int a,b;
	scanf("zwg:%d cgl:%d",&a,&b); 
	cout<<a+b<<endl;
	return 0;
}
/*测试样例 
zwg:1 cgl:2
*/

7-4 强者为王 (20分)
对抗与比赛是我们进步的动力,加油,奥利给!

能力大于旁边两个人(如果只有一个大于那一个即可)的人我们把它尊之为强者!

这是一个强者为王的世界,那么我们要找到所有强者,并且对他们的能力进行平方强化从而保护这个世界

输入格式:
以空格为分割的10个数字分别代表他们的能力,题目保证没有人能力相同且最大的能力值为9

输出格式:
输出强者的能力的和的平方

输入样例:
在这里给出一组输入。例如:

5 7 0 2 4 3 6 8 1 9
输出样例:
在这里给出相应的输出。例如:

784

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
int a[1002];
int main(){
	int t=0,n;
	//cin>>n>>t;
	for(int i=1;i<=10;i++)
		cin>>a[i];
	for(int i=1;i<=10;i++){
		if(a[i]>a[i-1]&&a[i]>a[i+1]){
			t+=a[i];
		}
	}
	cout<<t*t;
	return 0;
}
/*测试样例 
5 7 0 2 4 3 6 8 1 9 
*/

7-5 剪刀石头布 (20分)
今天小红和小明在玩剪刀石头布

但是小明喜欢小红,而喜欢的最高境界就是舔,于是他提出了闭眼玩的方法,只要不是平局就让小红赢

这样小明只需要知道他们是否平局就好了

输入格式:
题目输入包含两个字符串分别代表小红和小明出的什么,即“stone”,“scissors”,“cloth”代表石头剪刀布

输出格式:
如果平局就输出“NO!”小红赢就输出“YES!”

输入样例:
在这里给出一组输入。例如:

stone stone
输出样例:
在这里给出相应的输出。例如:

NO!

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
int main(){
	char a[20],b[20];
	scanf("%s%s",a,b);
	if(strcmp(a,b)==0){
		cout<<"NO!";
	}
	else cout<<"YES!";
	return 0;
}
/*测试样例 
stone stone
*/

7-6 复读机dh (20分)
有一个复读机它叫做dh,他擅长复读且具有原则只有语句中包含某特殊字符的才能复读,今天他和学妹打了一个赌,学妹对dh说你坚持一天不复读我就请你恰新三样,dh一口答应下来,但是在这天dh极其痛苦,因为他无法复读了,所以他向你求助,请求你来帮助他复读,下面给出若干个只有小写字母组成的字符串和那个特殊字符,若该字符串中有这个特殊字符你就输出,若没有则不输出。若没有一个需要复读的则输出dh xue zhang dui bu qi !!!

输入格式:
第一行给出一个数字n和字符c代表有多少个字符串1<=n<=10
下面n行给出n个字符串,字符串长度不超过100

输出格式:
有特殊字符的字符串输出,没有特殊字符串的不输出,若没有一个字符串需要复读,则输出
dh xue zhang dui bu qi !!!

输入样例1:
在这里给出一组输入。例如:

3 c
aaa
ccc
acb
输出样例1:
在这里给出相应的输出。例如:

ccc
acb
输入样例2:
在这里给出一组输入。例如:

2 a
bbb
ccc
输出样例2:
在这里给出相应的输出。例如:

dh xue zhang dui bu qi !!!

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
char a[13][109];
int main(){
	
	int n,flag=1;
	char c;
	scanf("%d %c",&n,&c);
	for(int i=0;i<n;i++){
		scanf("%s",a[i]);
	}
	for(int i=0;i<n;i++){
		if(strchr(a[i],c)){
			if(!flag)printf("\n");
			printf("%s",a[i]);
			flag=0;
		}	
	}
	if(flag)cout<<"dh xue zhang dui bu qi !!!!!!";
	return 0;
}
/*测试样例 
3 c
aaa
ccc
acb
*/

7-7 解方程??? (20分)
大家都知道你是一个数学小天才,那么给你a,b,c,请你用程序计算一下是否存在小于50的正整数x,y,满足ax+by=c

输入格式:
输入三个数字a,b,c以空格分隔

输出格式:
如果存在则输出x+y,否则输出a+b+c

输入样例:
2 2 4
输出样例:
2

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;

int main(){
	int a,b,c;
	cin>>a>>b>>c;
		for(int i=1;i<50;i++){
			for(int j=1;j<50;j++){
				if(a*i+b*j==c){
					cout<<i+j;return 0;
				}
				
			}
		}
		cout<<a+b+c;	
	return 0;
}
/*测试样例 
2 2 4
*/

7-8 k轮冒泡法排序 (25分)
众所周知,zwg是一个dalao,jzk是一个laji,现在jzk问zwg,你能将n个数字进行冒泡法排序使其从小到大有序吗?zwg觉得这个问题很简单,然后就反问jzk,你能在这个的基础上,输出进行k轮冒泡法排序的结果吗?jzk觉得这个问题很难,于是向你请教这个问题,你能替jzk解决这个问题吗? 给你n个数字,输出将这n个数字经过k轮冒泡法排序后的结果。 通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。

输入格式:
输入在第1行中给出N和K(1 ≤ K < N ≤ 100),在第2行中给出N个待排序的整数,数字间以空格分隔。

输出格式:
在一行中输出冒泡法排序扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

输入样例:
6 2
2 3 5 1 6 4
输出样例:
2 1 3 4 5 6

#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
int a[1002];
int  fun(int a[],int n,int k) {
	int count=0;
	for(int i=0; i<n; i++) {
		if(i==k) {
			for(int i=0; i<n-1; i++) {
				cout<<a[i]<<" ";
			}
			cout<<a[n-1];
			return 0;
		}
		for(int j=0; j<n-i-1; j++) {
			if(a[j]>a[j+1]) {
				count++;
				int t;
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			}
		}
	}
}
int main() {
	int t,n;
	cin>>n>>t;
	for(int i=0; i<n; i++)
		cin>>a[i];
	fun(a,n,t);
	return 0;
}
/*测试样例
6 2
2 3 5 1 6 4
*/
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值