【2021】阿里巴巴编程题(4星)

时长:120分钟 总分:10分

219浏览 1人已完成答题

题型介绍
题型 填空题
数量 10
1.
子集
问题详情

小强现在有个物品,每个物品有两种属性.他想要从中挑出尽可能多的物品满足以下条件:对于任意两个物品,满足或者.问最多能挑出多少物品.

进阶:时间复杂度,空间复杂度
输入描述: 第一行输入一个正整数.表示有组数据.
对于每组数据,第一行输入一个正整数.表示物品个数.
接下来两行,每行有个整数.
第一行表示个节点的属性.
第二行表示个节点的属性.



输入样例: 2 3 1 3 2 0 2 3 4 1 5 4 2 10 32 19 21 输出描述: 输出行,每一行对应每组数据的输出.输出样例 2 3
2.
小强爱数学
问题详情

小强发现当已知以及时,能很轻易的算出的值.但小强想请你在已知 和的情况下,计算出的值.因为这个结果可能很大,所以所有的运算都在模1e9+7下进行. 输入描述: 第一行输入一个正整数.表示有组数据
接下来行,每行输入三个整数,.



输入样例: 3 4 4 3 2 3 4 5 2 6 输出描述: 输出行,每一行表示每组数据的结果.输出样例 16 999999993 9009
3.
二叉树
问题详情

小强现在有个节点,他想请你帮他计算出有多少种不同的二叉树满足节点个数为且树的高度不超过的方案.因为答案很大,所以答案需要模上1e9+7后输出.
树的高度: 定义为所有叶子到根路径上节点个数的最大值.
例如: 当n=3,m=3时,有如下5种方案:
数据范围:
进阶:时间复杂度,空间复杂度
输入描述: 第一行输入两个正整数.

输入样例: 3 3 输出描述: 输出一个答案表示方案数.输出样例 5
4.
对称飞行器
问题详情

小强在玩一个走迷宫的游戏,他操控的人物现在位于迷宫的起点,他的目标是尽快的到达终点。
每一次他可以选择花费一个时间单位向上或向下或向左或向右走一格,或是使用自己的对称飞行器花费一个时间单位瞬移到关于当前自己点中心对称的格子,且每一次移动的目的地不能存在障碍物。
具体来说,设当前迷宫有  行  列,如果当前小强操控的人物位于点 ,那么关于点  中心对称的格子 满足
需要注意的是,对称飞行器最多使用次。 输入描述: 第一行两个空格分隔的正整数  ,分别代表迷宫的行数和列数。
接下来  行 每行一个长度为  的字符串来描述这个迷宫。
其中
 代表通路。
 代表障碍。
 代表起点。
 代表终点。
保证只有一个  和 一个  。
输入样例: 4 4 #S.. E#.. #... .... 输出描述: 仅一行一个整数表示从起点最小花费多少时间单位到达终点。
如果无法到达终点,输出  。输出样例 4
5.
知识竞赛
问题详情

最近部门要选两个员工去参加一个需要合作的知识竞赛,每个员工均有一个推理能力值 ,以及一个阅读能力值 。如果选择第 个人和第 个人去参加竞赛,那么他们在阅读方面所表现出的能力为 ,他们在推理方面所表现出的能力为
现在需要最大化他们表现较差一方面的能力,即让 尽可能大,问这个值最大是多少。

进阶:时间复杂度,空间复杂度
输入描述: 第一行一个正整数 ,代表员工数。
接下来  行每行两个正整数 ,分别用来描述第  个员工的推理和阅读能力。

输入样例: 3 2 2 3 1 1 3 输出描述: 仅一行一个一位小数用来表示答案。输出样例 2.0
6.
树上最短链
问题详情

在一个地区有 个城市以及 条无向边,每条边的时间边权都是 ,并且这些城市是联通的,即这个地区形成了一个树状结构。每个城市有一个等级。
现在小强想从一个城市走到另一个不同的城市,并且每条边经过至多一次,同时他还有一个要求,起点和终点城市可以任意选择,但是等级必须是相同的。
但是小强不喜欢走特别远的道路,所以他想知道时间花费最小是多少。

进阶:时间复杂度,空间复杂度
输入描述: 第一行一个正整数 ,含义如题面所述。
第二行  个正整数 ,代表每个城市的等级。
接下来 行每行两个正整数 ,代表一条无向边。
保证给出的图是一棵树。


。输入样例: 3 1 2 1 1 2 2 3 输出描述: 仅一行一个整数代表答案,如果无法满足要求,输出 。输出样例 2
7.
牛牛们吃糖果
问题详情

个牛牛一起去朋友家吃糖果,第个牛牛一定要吃块糖果.

而朋友家一共只有块糖果,可能不会满足所有的牛牛都吃上糖果。

同时牛牛们有个约定,每一个约定为一个牛牛的编号对,表示第个和第个牛牛是好朋友,他俩要么一起都吃到糖果,要么一起都不吃。

保证每个牛牛最多只出现在一个编号对中。

您可以安排让一些牛牛吃糖果,一些牛牛不吃。

要求使能吃上糖果的牛牛数量最多(吃掉的糖果总量要小于等于),并要满足不违反牛牛们的个约定。

输入描述:

第一行个正整数 

第二行个正整数 ,

第三行个整数

接下来行,每行两个正整数 ,表示第个牛牛与第个牛牛有约定。
输入样例: 3 10 5 1 5 1 1 3 输出描述: 一行一个数字表示最多能吃上糖果的牛牛个数输出样例 2
8.
方案数量
问题详情

有这样的一个方格游戏:这个游戏是这样的:

1.有个方格,方格内每一个位置都有一个数,代表到达这个点后拥有的能量。

2.初始的时候在左上角,并将左上角的值作为初始能量,终点为右下角的点。

3.每一步只能往下或者往右走,且走一步需要消耗点能量。不能在原地停留,即不会获得中间节点的能量并且能量不累计。

4.当你选择了一条可行的路径(这条路径消耗的能量不超过现有能量),你可以走到终点。

例如:

最开始在点,拥有的是点能量,蓝色的方格代表从起点出发步以内所能走到的点,假设我们第一次走到,则到达后能量变为点,那么接下来可以达到的点为

现在想问你有多少条不同的路径(两条路径如果按顺序依次到达的点有一个不同,则认为是不同的路径方式)可以从左上角的点走到右下角的点,由于答案很大,请答案对取余。

输入描述:
输入第一行有一个整数,代表接下来有组测试数据。
对于每一组测试数据第一行输入两个整数
代表方格的大小。接下来行,每一行输入个数,代表这个方格内的能量。



保证每一个文件内的总和不超过
输入样例: 2 3 3 2 1 1 1 1 1 1 1 1 6 6 4 5 6 6 4 3 2 2 3 1 7 2 1 1 4 6 2 7 5 8 4 3 9 5 7 6 6 2 1 5 3 1 1 3 7 2 输出描述: 对于每组数据输出一行,代表可以走到的方案数量。输出样例 10 3948
9.
合法连续子段
问题详情

小强有一个长度为的数组和正整数.
他想请你帮他计算数组中有多少个连续子区间[l,r],其区间内存在某个元素出现的次数不小于次?
例如数组,那么区间[1,3],[1,4],[1,5],[2,4],[2,5]都是满足条件的区间,但区间[3,4]等都是不满足条件的. 输入描述: 第一行输入两个正整数.
第二行输入n个正整数.

输入样例: 5 2 1 2 1 2 3 输出描述: 输出一个整数表示答案.输出样例 5
10.
两个序列
问题详情

小强有两个序列,这两个序列都是由相同的无重复数字集合组成的,现在小强想把序列变成序列,他只能进行以下的操作:
从序列中选择第一个或者最后一个数字并把它插入中的任意位置。
问小强至少需要几次操作可以将序列变为序列。 输入描述: 一行一个整数表示序列的长度。
接下来两行每行个整数。
第一行表示序列,第二行表示序列



保证给出的序列符合题意。输入样例: 4 4 2 3 1 1 2 3 4 输出描述: 输出一行一个整数表示答案。输出样例 2