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

被折叠的 条评论
为什么被折叠?



