真题分享|阿里3月23日晚五道题

2023大厂真题+题解+在线评测分享!

最近我们一直在将收集到的机试真题制作数据并搬运到OJ上,供大家免费练习,体会真题难度。现在已录入100+道2022/23年最新大厂真题,同时在不断的更新。关注"塔子哥学算法"公众号获得网址以及每道题的题解+代码。

塔子哥学算法:codefun2000.com

第一题:题目内容

给定两个长度为n的数组a和b,你需要对a数组进行重排,使得\sum_{i=1}^{n}|a_{i}-b_{i}| 尽可能小。请你输出一个最优解。

输入描述

第一行输入一个正整数n
第二行输入n个正整数a_{i}

第三行输入n个正整数b_{i}

1 \leq n \leq10^5

1 \leq a_{i} ,b_{i} \leq 10^9

输出描述

n个正整数,代表重排后的a数组。如果有多个重排方式,输出任意即可

样例1

输入

4
2 1 3 2
5 2 4 2

输出

3 1 2 2

说明

 重排后,\sum_{i=1}^{n}|a_{i}-b_{i}|= |3 - 5| + |1 - 2| + |2 - 4| + |2 - 2| =5

第二题:题目内容

给定一个01串,可以进行若干次如下操作: 选择两个相邻的字符,将它们同时取反。 请你求出最大化'1'字符数量的最小操作次数。

输入描述

一个长度不超过200000的、仅由’1'和’0组成的字符串。

输出描述

一个整数,代表最小的操作次数。

样例1

输入

0101

输出

2

说明 :0101->0011->1111

样例2

输入

101

输出

0

说明

无论怎么操作,1的数量最大值也只能是2,因此无需操作。

第三题:题目内容

给定一个正整数序列,从前往后进行数数:1,2,3,4,5,6,7,8,9,10,11,..... 试求当你数到多少时,0到9·每个数字各出现了至少k次?

注:我们定义“数字”为十进制下的数位,例如,3233出现了三个'3'和一个2。

共有t组询问,每组询问都是独立的。

输入描述

第一行输入一个正整数t,代表询问的次数。

接下来的t行,每行输入一个正整数k,代表一次询问。

对于10%的数据,1 \leq t \leq 10,1 \leq k \leq 100

对于35%的数据,1 \leq t \leq 1000,1 \leq k \leq 10^7

对于100%的数据,1 \leq t \leq 1000,1 \leq k \leq 10^{13}

输出描述

输出t行,每行输出一个整数,代表每次的答案。

样例1

输入

3
1
2
3

输出

10
20
30

说明

 在第1组询问中,当数到10时,0到9每个数至少出现了1次。

第四题:题目内容

给定一个长度为n的、由数字字符组成的字符串,你可以进行如下操作: 选择一个字符,使得其加1或者减1。 请注意,你无法对'0'进行减1操作,也无法对'9'进行加1操作。 若干次操作后,你需要使得该字符串存在一个长度为k的、所有字符都相同的连续子串。请你计算出操作的最小次数。

输入

5 3
2 9 1 8 3

输出

7

样例

将字符串变成"2 9 3 3 3"即可,需要操作7次 (对第三个字符进行2次加1操作,对第四个字符进行5次减1操作)。

第五题:题目内容

有一个任务job和两个机器m1,m2。执行这个任务的消耗为一个正整数cost(1 \leq cost \leq 2 × 10^5),现在考虑到机器的负荷不能太大,因此我们需要将这个任务切割成k(1 \leq k \leq cost)个子任务,将它们分发给两个机器。由于技术所限,必须由第一个机器按切割顺序执行若干个子任务,然后再由第二个机器执行剩下的子任务。我们希望最终两个机器的消耗是相等的。请你编写一个函数,返回合法的切割方案数。由于答案可能过大你需要将答案对10^9+7取模

样例1

输入

6, 3

输出

4

说明

共有4种切割方式: 6=1+2+3(前两个分配给1号机器,第三个分配给2号机器)。

6=2+1+3 (前两个分配给1号机器,第三个分配给2号机器)。

6=3+1+2 (第一个分配给1号机器,后两个分配给2号机器)。

6=3+2+1 (第一个分配给1号机器,后

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值