试卷 2023年NOC大赛_Python软件创意编程赛项_决赛_小高组真题(忽略分值)
2023年NOC大赛_Python软件创意编程赛项_决赛_小高组真题(忽略分值)
编程题
第 1 题    问答题

灯的开关

编程实现:

现在有n盏灯,都是亮着的,编号为1到n,每一盏灯都有一个独立的开关,现在按一下编号为2的倍数的灯的开关,再按一下编号为3的倍数的灯的开关,再按一下编号为4的倍数的灯的开关,再按一下编号为5的倍数的灯的开关,请问现在还亮着的灯有多少盏?

输入描述

输入一个正整数n,代表有n盏灯。

输出描述

输出仍然亮着的灯有多少盏。


输入样例

10

输出样例

6
第 2 题    问答题

算式

编程实现:

有一道算式看不清了,只知道是a [ ] b = c,已知a,b,c都是1到9之间的不同数字,输入+、-、*、/其中一种运算,输出算式有多少种可能。

例:输入*号,那么算式一共有4种可能:

2 * 3 = 6,a为2,b为3,c为6;

2 * 4 = 8,a为2,b为4,c为8;

3 * 2 = 6,a为3,b为2,c为6;

4 * 2 = 8,a为4,b为2,c为8。

输入描述

输入+、-、*、/其中一种运算。

输出描述

输出算式有多少种可能。


输入样例

*

输出样例

4
第 3 题    问答题

植物大战僵尸

编程实现:

为了应对僵尸,需要选取多种不同的植物,现有n种植物可供选择,已知每种植物的攻击力,想要选取攻击力之和为k的植物,相同植物不能重复选择,有多少种不同的选择方案?

输入描述

第一行输入两个正整数n和k,中间用空格隔开,表示有n种植物可供选择(1≤n≤50),目标攻击力之和为k(1≤k≤100)。

第二行输入n个正整数,表示每种植物的攻击力(1≤攻击力≤100)。

输出描述

输出达到目标攻击力之和的选择方案的数量。


输入样例

3 10
5 2 3

输出样例

1
第 4 题    问答题

连连看

编程实现:

现在有一个连连看游戏。场上有n张卡牌,每张卡牌上有一个分数,只要将两张卡牌连到一起,就会合成一张新的卡牌,卡牌上的分数为之前两张卡牌的分数之和,你将获得新卡牌分数的相应积分。经过多次操作后,最后只剩一张卡牌,游戏结束。给定初始每张卡牌的分数,请问最多能获得多少分?

例如:场上有3张卡牌,分数分别为10分、23分、5分,将10分卡牌与23分卡牌合成,可得到33分卡牌,再将33分卡牌与5分卡牌合成,可得到38分卡牌,获得总分数为33+38=71分为最多的分数。

输入描述

第一行输入一个正整数n,表示有n张卡牌(1≤n≤10000)。

第二行输入n个正整数,表示每张卡牌的初始分数(1≤分数≤10000),正整数之间由空格隔开。

输出描述

输出最多可以获得的分数。


输入样例

3
10 23 5

输出样例

71
第 5 题    问答题

地宫宝藏

编程实现:

现有地宫里埋藏着一些宝藏,已知地宫的藏宝房间有n间,且呈环形分布,每个房间都有一定价值的宝藏,由于机关设置,你每取走一个房间的宝藏,相邻房间的房门就会锁死,不能再进入,给出房间的数量n和每个房间的宝藏价值,请问你最多能拿走多少价值的宝藏?

输入描述

第一行输入一个正整数n,表示地宫有n个房间(1≤n≤100)。

第二行输入n个正整数,表示每个房间的宝藏价值(1≤宝藏价值≤100)。

输出描述

输出最多可以获得的宝藏价值。


输入样例

4
10 3 7 13

输出样例

17
第 6 题    问答题

方块城堡

编程实现

为了迎接新同学,学校用方块打算在校门口堆一座城堡,让同学们拍照打卡。老师标记了 n 个位置,这些位置从左到右排成一整排,编号从 1 到 n。他原本打算在第 i 号位置用 ai个方块搭建城堡的某种结构。然而,送货的司机过于粗心,胡乱地把方块卸下后就离开了。老师统计了一下,发现目前在第 i 号位置的方块数量是 bi(司机把所有方块都卸下了,所以 ai 之和等于 bi之和)。

无奈之下,老师只能让同学们帮忙移动这些方块,由于方块很重,所以一次只能把一个方块移动到相邻编号的位置上。请帮同学们规划一下,要最少移动多少次才能让所有位置的方块数量从bi 变成 ai。

输入描述

输入共三行。

第一行一个正整数 n,表示位置个数。(1≤n≤1000)

第二行 n 个正整数 ai,表示原本计划中每个位置的方块个数。

第三行 n 个正整数 bi,表示目前每个位置的方块个数。(1≤ai,bi≤1000)

输出描述

输出一行一个数字,表示最少需要的移动次数。


输入样例

5
1 2 3 4 5
3 1 2 5 4

输出样例

4
第 7 题    问答题

香蕉田

编程实现

小猴有一片矩形香蕉林,香蕉林一共被分成了 n x m 个小块,每个小块上会有一颗香蕉树或者是一块空地。我们用 0 表示一块空地,用 1 表示一颗香蕉树,香蕉林之外可以视作全部是空地。

小猴认为一个香蕉田由聚在一起的 1 相连接而组成(上下左右相邻)。

在一个香蕉田 A 中,可以从中选出若干个香蕉树,使得这些香蕉树可以通过上、下、左、右方向连接构成一个“环”。

如果另一个香蕉田 B 所占据的格子全部位于这个“环”内部,就将香蕉田 B 视作香蕉田A 的子香蕉田。

若 B 是 A 的子香蕉田,C 是 B 的子香蕉田,那么 C 也是 A 的子香蕉田。

例如,有 5 x 5 的香蕉林:

其中香蕉田有两个,分别用蓝色区域和绿色区域来表示,但是绿色区域的香蕉田是蓝色区域香蕉田的子香蕉田。如果不统计子香蕉田的个数,那么该香蕉林中只有一个香蕉田。

现在,请你帮助小猴统计一下香蕉林中一共有多少个香蕉田。在进行统计时不需要统计子香蕉田的数目。

输入描述

第一行,包含一个整数 T,表示有 T 组测试数据。( 1≤T≤10 )

对于每一组数据:

第一行包含两个整数 n,m,表示香蕉林的大小。( 1≤n,m≤50 )

接下来的 n 行,每行包含 m 个字符,保证字符只可能是 0 或 1。

输出描述

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


输入样例

2
5 5
01111
11001
10101
10001
11111
5 6
111111
100001
010101
100001
111111

输出样例

1
3

样例说明

对于第一组数据,包含两个香蕉田,下面用不同的颜色进行了区分:

绿色香蕉田在蓝色香蕉田的“环”内部,所以绿色香蕉田是蓝色香蕉田的子香蕉田,答案为 1。

对于第二组数据,包含三个香蕉田,下面用不同的颜色进行了区分:

注意橙色香蕉田并不是蓝色香蕉田或者绿色香蕉田的子香蕉田 ,因为蓝色香蕉田和绿色香蕉田中均没有“环”,答案为 3。

答题卡
编程题
1 2 3 4 5 6 7
题目总数:7
总分数:100
时间:不限时
QQ
公众号
客服
扫一扫