编程语言
首页 > 编程语言> > 2021年山东省C++应用编程比赛真题

2021年山东省C++应用编程比赛真题

作者:互联网

T1.及格

题目描述

小A在上一门课,这门课的总成绩由期中成绩和期末成绩组成,其中期中成绩占a%,期末成绩占b%,期中和期末的分数都是百分制,且均为整数。

现在小A知道了他期中成绩x和期末成绩y,他想知道最终的总评是否及格了,也即分数是否不小于60分,如果是的话,输出字符串pass!,否则输出字符串poor little A!

输入输出格式

输入格式:

第一行为一个正整数 T ,表示数据组数,你的程序需要对这T组数据都给出正确的结果才能拿到测试点的分数。
每组数据一行四个非负整数x y a b,含义如题目中所示。

输出格式:

对每组数据输出一行一个字符串表示答案。

输入输出样例

输入样例#1:

3

51 61 10 90

60 40 100 0

60 40 0 100

输出样例#1:

pass!

pass!

poor little A!

补充说明

【样例解释】
前两组数据中,小A总评分都是刚好60分,第三组数据总评为40分

【数据规模与约定】
对于50%的数据,满足 a×b=0
对于100%的数据,1≤T≤1000 ; 0≤x,y,a,b≤100 ; a+b=100
时间限制:1s 空间限制:256M

2.聪明的小偷

题目描述
从前有一个收藏家收藏了许多相同的硬币,并且将它们放在了n个排成一排的口袋里,每个口袋里都装了一定数量的硬币。这些硬币价值不菲,自然引起不少人觊觎,于是收藏家每天都会来检查一次这n个口袋,首先他会先检查每个口袋是不是都有硬币,之后他会计算出第1个和第2个口袋的硬币数量之和,第2个与第3个口袋的硬币数量和,如此直到第n-1个与第n个口袋的硬币数量之和,得到n-1个数的序列。
如果收藏家发现某个口袋没有硬币,或者他计算得到的序列较上一天相比有变动,那么收藏家就知道肯定有人动了他的硬币。
有一个聪明的小偷,他想在收藏家不知道的情况下偷走一些硬币,为此,他不仅可以偷偷地从某个口袋中拿出一些硬币,也可以将硬币在口袋间任意移动,现在他想知道对于给定的n个口袋及对应的硬币数量,他最多能拿多少枚硬币。

输入输出格式

输入格式:

第一行一个正整数n,表示口袋的个数。
接下来一行n个正整数,第i个正整数表示第i个口袋里装的硬币数量。

输出格式:

一行一个非负整数,表示答案。

输入输出样例

输入样例#1:

3

1 2 3

输出样例#1:

0

输入样例#2:

4

2 4 6 8

输出样例#2:

0

输入样例#3:

5

2 3 4 5 6

输出样例#3:

1

补充说明

【样例解释】
第一个样例中,小偷无法在收藏家不知道的情况下移动硬币。
第二个样例中,尽管小偷可以移动硬币,比如移动成3 3 7 7,但是他仍然无法拿出硬币。
第三个样例中,小偷将1,5口袋的一个硬币移动到2,4口袋中,并在口袋3中拿出一个硬币即可。

【数据规模与约定】
对于30%的数据,有n≤4
对于60%的数据,有2≤n≤50,每个口袋中硬币数量≤20。
对于100%的数据,有2≤n≤999,每个口袋中硬币数量≤10000且为正整数。
时间限制:1s 空间限制:256M

3.石子游戏

题目描述
现在有一堆共n个石子,小A和小B两人轮流从中取石子(小A先取),取到最后一个石子的人获胜。
但游戏不可能这么简单,所以有一个限制,每个人每次只能从中取1个或者质数个石子,显然每次取出的石子个数不能超过当前堆中的石子个数。

给定n,你的任务就是判断谁有必胜策略。

输入输出格式

输入格式:

第一行一个正整数T,表示数据组数。
接下来T组数据,每组数据一行一个正整数n。

输出格式:

对每组数据输出一行一个字符A/字符B,表示小A/小B有必胜策略。

输入输出样例

输入样例#1:

2

4

5

输出样例#1:

B

A

补充说明

【样例解释】
第一组数据中,小A不能一下取完,而他无论怎么取,剩下的石子小B都可以一次性取完,因此小B有必胜策略。
第二组数据中,小A一次取完所有石子即可。

【数据规模与约定】
对于30%的数据,n≤10
对于60%的数据,n≤1000
对于100%的数据,T≤1000 ; n≤10^9。
时间限制:1s 空间限制:256M

4.数排列

题目描述

给定一个n个数的序列ai,其中每项均为0或1。

你的任务是统计符合以下性质的1到n的排列(排列中第i项记为pi)的个数:
若ai=0,则要求pi是i的因数,否则要求pi是i的倍数。

输入输出格式

输入格式:

第一行一个正整数T,表示数据组数。接下来T组数据,每组数据第一行一个正整数n表示序列长度,第二行n个用空格分隔的整数ai。

输出格式:

对每组数据输出一行一个正整数,表示答案。

输入输出样例

输入样例#1:

2

3

0 0 0

5

0 1 1 0 1

输出样例#1:

1

2

补充说明

【样例解释】
第一组数据中,只有排列1 2 3符合条件
第二组数据中,排列1 2 3 4 5和排列1 4 3 2 5都符合条件

【数据规模与约定】
对于30%的数据,有 n≤5
对于60%的数据,有 n≤9
对于100%的数据,有 T≤10 ;n≤15 ;0≤a_i≤1
时间限制:1s 空间限制:256M

标签:口袋,输出,正整数,硬币,真题,样例,C++,2021,数据
来源: https://blog.csdn.net/weixin_39104847/article/details/115280927