试卷总分:100分


选择题 5题 10分

01 02 03 04 05


多选题 5题 20分

06 07 08 09 10


编程题 4题 70分

11 12 13 14

E1020 全国青少年信息素养大赛 -算法应用 C++ 初中组 复赛模拟题-1-考试

选择题 共5道

01 郑和船队携带各类货物,定义结构体
struct Goods { 
	string name; 
	int weight; 
	int value; 
}; 
现有一批货物存放在goods数组中,需要按价值升序排序,若价值相同则按重量降序排序。以下关于排序实现的说法正确的是?
2分
登录后查看选项
02 船队航海日志字符串
s = "2024-07-15: Arrived at Malacca, cargo=200t"
现需要提取货物重量数字 "200"。下列选项中能够正确且较为通用地完成提取的是?
2分
登录后查看选项
03 船厂计算圆柱形船舱的体积,公式为 V = π × r² × h。需要使用数学库中的 pow 函数求半径的平方。下列关于 pow 函数使用正确的是? 2分
登录后查看选项
04 船队物资装卸遵循“先装后卸”规则,现使用 C++ 标准库中的 stack st 来模拟货仓。下列关于栈操作的说法正确的是? 2分
登录后查看选项
05 船队航行日志保存在文件 "voyage.log" 中,需要在程序中逐行读取并处理。以下关于文件读取操作的说法正确的是? 2分
登录后查看选项

多选题 共5道

06 某题库管理系统需要对学生考试成绩进行多关键字排序:先按总分降序,总分相同则按语文成绩降序,若还相同则按数学成绩降序。关于在C++中实现该排序,以下说法正确的是? 4分
登录后查看选项
07 在DNA序列分析中,需要从长串中提取特定片段并查找“ATG”模式。关于C++字符串操作,以下说法正确的是? 4分
登录后查看选项
08 浏览器中的“前进/后退”功能可以用两个栈来模拟。关于栈和队列,以下说法正确的是? 4分
登录后查看选项
09 斐波那契数列的第50项已经超出普通整型范围,需要使用高精度计算。关于高精度运算和递推,以下说法正确的是? 4分
登录后查看选项
10 分析一组数据的波动程度时,需要计算标准差,公式为:平方和的均值减去均值的平方再开方。在C++中,可以使用循环和数学库函数实现。以下说法正确的是? 4分
登录后查看选项

编程题 共4道

11

驿站密信解析

商队收到一串加密的密文,由字母和尖括号 '<>' 组成。你需要从密文中提取所有被 '<>' 括起来的子串(不包括尖括号本身),并按在原字符串中的顺序输出,每行一个子串。如果密文中没有这样的子串,则输出 "none"(不含引号)。

输入格式

一行一个字符串 s,长度不超过 1000,只包含大小写英文字母和 '<'、'>' 字符。

输出格式

每个被提取的子串占一行。如果没有符合条件的子串,输出一行 "none"。

输入样例#1
start<Apple>middle<Banana>end
输出样例#1
Apple
Banana
输入样例#2
no<bracket>
输出样例#2
bracket
输入样例#3
nothing
输出样例#3
none
提示

注意 '<' 和 '>' 是成对出现的,但输入保证格式合法,不会出现嵌套或不成对的情况。字符串长度 ≤ 1000。

15分

C0574
登录后作答
12

丝路商队评级

丝路商会对沿线的 n 支商队进行年度评级。每支商队有一个名称(不含空格的字符串)、完成的交易次数 c 和总利润 p(整数,可能为负)。评级规则如下:

  • 先按交易次数从高到低排序;
  • 交易次数相同的,按总利润从高到低排序;
  • 交易次数和总利润都相同的,按名称字典序升序排列。

请编程实现该评级排名,并输出排序后的名单。

输入格式

第一行一个整数 n (1 ≤ n ≤ 10000)。

接下来 n 行,每行依次是一个字符串 name(长度 ≤ 20,仅含小写字母)、整数 c (0 ≤ c ≤ 106) 和整数 p (|p| ≤ 106),含义如上所述。

输出格式

n 行,每行输出排序后的 name c p,用一个空格隔开。

输入样例#1
4
camel 20 500
horse 20 600
mule 18 300
dolphin 20 500
输出样例#1
horse 20 600
camel 20 500
dolphin 20 500
mule 18 300
提示

可使用结构体或 pair 存储数据,利用 sort 函数并自定义比较规则。注意排序的优先级。

15分

C0572
登录后作答
13

绿洲引水工程

丝绸之路沿线有 n 个绿洲,编号 1 到 n,规划修建 m 条双向引水渠(可能不连通)。其中一部分绿洲已经拥有稳定的水源,称为“水源绿洲”。水源绿洲可以通过引水渠将水输送到直接相连的绿洲,被输送到的绿洲又会继续向与其相连的绿洲送水,如此层层传递。

请你计算最终有多少个绿洲能够获得水源。

输入格式

第一行两个整数 n m (2 ≤ n ≤ 105,0 ≤ m ≤ min(105, n*(n-1)/2) )。

第二行一个整数 k (1 ≤ k ≤ n),表示水源绿洲的个数。

第三行 k 个整数,表示水源绿洲的编号(1~n 之间,两两不同)。

接下来 m 行,每行两个整数 u v,表示一条引水渠连接 u 和 v。

输出格式

共一行,一个整数,表示可以获得水源的绿洲总数。

输入样例#1
6 4
2
1 4
1 2
2 3
4 5
3 6
输出样例#1
6
输入样例#2
4 2
1
2
1 2
3 4
输出样例#2
2
提示

注意图可能不连通,多源 BFS/DFS 均可。使用邻接表存储图,注意空间。

20分

C0573
登录后作答
14

绿洲生态

题目描述

丝路沿线有 n 个绿洲排成一行,编号 1~n。每个绿洲有一个“生态价值” a[i](可能为负)。商队要选择一段连续的绿洲进行生态考察,要求该段的价值之和最大。

请输出最大连续子段和。

输入

第一行一个整数 n 。

第二行 n 个整数 a[1]...a[n] 。

输出

一个整数,表示最大连续子段和。

数据范围

2≤n≤1000,0≤m≤n*(n-1)/2

输入样例1

9
-2 1 -3 4 -1 2 1 -5 4

输出样例1

6

输入样例2

5
-1 -2 -3 -4 -5

输出样例2

-1

输入样例3

3
1 2 3

输出样例3

6
20分

C0583
登录后作答