Home 阿里云2025届暑期实习在线笔试-0428
Post
Cancel

阿里云2025届暑期实习在线笔试-0428

2024 年 4 月 28 日 14:00 - 15:40,阿里云 2025 届工程研发笔试。

总限时 100 分钟,共 100 分。

前面是 8 道单选题、7 道不定项选择题。

最后是三道算法题,分值分别为为 15/15/25 分。

编程题使用 ACM 模式,即需要自己处理输入输出。语言不限,不能用本地IDE(阿里系基本都是)。

Note: 试题回忆 / OCR 可能有错漏,且我的思路及解法较为笨拙,不敢保证正确性。

抛砖引玉,敬请指正。

算法题

Q1 小红的数组染色 15 pts

小红拿到了一个数组,初始所有元素都是白色,她准备将一些元素染成红色,将另外一些元素染成蓝色。小红希望使得红色元素之和与蓝色元素之和相等,她想知道有多少种不同染色方案?

输入描述

第一行输入一个正整数n,代表数组的大小。

第二行输入n个正整数a_i,代表数组的元素。

1 <= n <= 50

1 <= a_i <= 10

输出描述

一个整数,代表不同的染色方案数量。由于答案可能很大,输出答案对10^9+7取模的结果。

示例 1

输入

1
2
4
1 2 4 3

输出

1
6

说明

1
2
3
4
5
6
方案1:1和4染红,2和3染蓝。
方案2:1和4染蓝,2和3染红。
方案3:1和2染红,3染蓝。
方案4:1和2染蓝,3染红。
方案5:1和3染红,4染蓝。
方案6:1和3染蓝,4染红。

示例 2

输入

1
2
3
1 1 1

输出

1
6

说明

1
显然只有1个染红、1个染蓝这种可能,共有6种不同的染色方式。

My Solution

不会做。刚开始用回溯找和为原数组和一半的子集,但这是错误思路。

因为并不用所有白块都染色,可以只染一部分。

拆分数组后再回溯的话,复杂度就会增加很多。

1
# TODO

Correct Solution

DP?

1
# TODO

Q2 小苯的合并极差 15 pts

小苯有一个长n的数组a,他可以对数组进行任意次以下两种操作:

  • 选择1 ≤ i<n,将a_i 和a_ (i+1) 合并为一个数字,结果为 a_i & a_(i+1)。(&表示按位与运算)
  • 选择1 ≤ i<n,将a_i 和a_ (i+1) 合并为一个数字,结果为 a_i | a_(i+1)。( 竖线表示按位或运算)

(两种操作均可以执行任意次,前提是数组长度至少为2。当然每次操作执行完后,n 都会减少1。)

小苯希望最大化数组的极差,请你帮帮他吧。

极差定义:数组最大值与最小值之间的差距。

输入描述

输入包含两行。

第一行一个正整数n (1 ≤ n ≤ 10^5),表示数组 a 的长度。

第二行 n 个整数 a_i(0 ≤ a_i ≤ 10^9),表示数组 a 的值。

输出描述

输出包含一行一个整数,表示数组的最大极差。

示例 1

输入

1
2
6
1 2 3 1 1 6

输出

1
7

说明

1
2
3
可以合并 a1 和 a2 为 a1 & a2,再合并 a5 和 a6 变为 a5 | a6。
此时数组变为:{0, 3, 1, 7},极差为 7 最大。
可以证明不存在比 7 更大的极差。

My Solution

没有思路,骗分。直接输出所有数字的按位或,即默认最小为0,最大为所有数字按位或。通过100%。

1
# 略

Correct Solution

1
# TODO

Q3 小红的 red 重排 25 pts

小红拿到了一个长度为3*n的字符串,其中’red’三种字符都恰好有n个。

现在她每次操作可以交换任意两个字符,请你求出小红使得该字符串包含n个”red”连续子串的操作操作次数,并给出任意一个方案。

输入描述

第一行输入一个正整数n。

第二行输入一个长度为3*n的,由n个’r’、n个’e’、n个’d’组成的字符串。

1≤ n ≤ 50000

输出描述

第一行输入一个正整数 q ,代表操作次数。

接下来的 q 行、毎行输入两个正整数u、v,代表交换第 u 个字符和第 v 个字符。

示例 1

输入

1
2
1
edr

输出

1
2
3
2
1 3
2 3

说明

1
2
首先交换第一个字符和第三个字符,字符串变成"rde"。
然后交换第二个字符和第三个字符,字符串变成"red"。

示例 2

输入

1
2
3
redredred

输出

1
0

My Solution

没做。

1
# TODO

Correct Solution

1
# TODO
This post is licensed under CC BY 4.0 by the author.

LeetCode Biweekly Contest 128

哔哩哔哩 2025 届暑期实习在线笔试-0428