试卷总分:100分
选择题 5题 10分
多选题 5题 20分
编程题 4题 70分
struct Goods { string name; int weight; int value; };
s = "2024-07-15: Arrived at Malacca, cargo=200t"
商队收到一串加密的密文,由字母和尖括号 '<>' 组成。你需要从密文中提取所有被 '<>' 括起来的子串(不包括尖括号本身),并按在原字符串中的顺序输出,每行一个子串。如果密文中没有这样的子串,则输出 "none"(不含引号)。
一行一个字符串 s,长度不超过 1000,只包含大小写英文字母和 '<'、'>' 字符。
每个被提取的子串占一行。如果没有符合条件的子串,输出一行 "none"。
start<Apple>middle<Banana>end
Apple Banana
no<bracket>
bracket
nothing
none
注意 '<' 和 '>' 是成对出现的,但输入保证格式合法,不会出现嵌套或不成对的情况。字符串长度 ≤ 1000。
丝路商会对沿线的 n 支商队进行年度评级。每支商队有一个名称(不含空格的字符串)、完成的交易次数 c 和总利润 p(整数,可能为负)。评级规则如下:
请编程实现该评级排名,并输出排序后的名单。
第一行一个整数 n (1 ≤ n ≤ 10000)。
接下来 n 行,每行依次是一个字符串 name(长度 ≤ 20,仅含小写字母)、整数 c (0 ≤ c ≤ 106) 和整数 p (|p| ≤ 106),含义如上所述。
n 行,每行输出排序后的 name c p,用一个空格隔开。
4 camel 20 500 horse 20 600 mule 18 300 dolphin 20 500
horse 20 600 camel 20 500 dolphin 20 500 mule 18 300
可使用结构体或 pair 存储数据,利用 sort 函数并自定义比较规则。注意排序的优先级。
丝绸之路沿线有 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。
共一行,一个整数,表示可以获得水源的绿洲总数。
6 4 2 1 4 1 2 2 3 4 5 3 6
6
4 2 1 2 1 2 3 4
2
注意图可能不连通,多源 BFS/DFS 均可。使用邻接表存储图,注意空间。
丝路沿线有 n 个绿洲排成一行,编号 1~n。每个绿洲有一个“生态价值” a[i](可能为负)。商队要选择一段连续的绿洲进行生态考察,要求该段的价值之和最大。
请输出最大连续子段和。
第一行一个整数 n 。
第二行 n 个整数 a[1]...a[n] 。
一个整数,表示最大连续子段和。
2≤n≤1000,0≤m≤n*(n-1)/2
9 -2 1 -3 4 -1 2 1 -5 4
5 -1 -2 -3 -4 -5
-1
3 1 2 3