2023春招算法题汇总(2)
Author:baiyucraft
BLog: baiyucraft’s Home
0312 拼多多 春招实习
第一题:飞机大战
题目
多多最近下载了一款飞机大战的游戏,多多可以通过游戏上的不同发射按键来控制飞机发射子弹:
按下 A 键,飞机会发射出 2 枚子弹,每个子弹会对命中的敌人造成 1 点固定伤害,但不能作用于同个敌人。
按下 B 键,飞机会发射出 1 枚子弹,子弹会对命中的敌人造成巨额伤害并瞬间将其秒杀。
多多是个游戏高手,总是能操控子弹命中想要命中的敌人。这个游戏—共有 T 个关卡,消灭当前关卡全部敌人后,发射出去多余的子弹会消失,游戏会自动进入下一个关卡。
假设每个关卡都会在屏幕中同时出现 N 个敌人,这 N 个敌人所能承受的伤害也已经知道。多多想知道,每个关卡自己最少按几次发射按键就可以将敌人全部消灭?
输入描述
第一行输入一个固定数字 T ()表示关卡的总数量 N ()表示每个关卡出现的敌人数量。
接下来 T 行,每行有 N 个数字 D1, D2, ..... Dn()分别表示这 N 个敌人所能承受的伤害。
输出描述
结果共有 N 行,每行一个数字,分别表示对于这个关卡,最少按几次发射按键就可以将敌人全部消灭。
示例
1 | |
代码
每个等级,比较总长度和总数
1 | |
第一题:飞机大战
题目
又到了团建的时间,多多君负责安排这次的团建活动。
多多君准备了三个活动(分别编号 A 、 B 和 C ),每个活动分别有人数上限以及每个人参加的费用。
参加团建的有 N 个人(分别编号 1~N ),每个人先投票选择若干个意向的活动,最终每个人只能参加其中一个。
多多君收集完投票结果后,发现如何安排成为了大难题:如何在满足所有人的意向的情况下,使得活动的总费用最少。
于是多多君找到了擅长编程的你,希望你能帮助找到个合理的团建计划。
输入描述
第一行,一个整数 N ,代表准备参加活动的人数。()
接下来 N 行,每行一个由 "ABC" 组成的字符串,其中第 i 行表示第 i 个人投票了哪几个活动。
(输入保证字符串非空,且由大写的 "ABC" 字符组成)
最后 3 行,每行两个整数,分别表示三个活动的人数上限以及每个人参加的费用。
(人数上限以及参与活动的费用均为不超过 100 的正整数)
输出描述
输出共 2 行
如果能满足所有人的要求,第一行输出 "YES” ,第二行输出最少的总费用。
如果不能满足所有人的要求,第一行输出 "NO",第二行输出最多能满足多少人。
示例
1 | |
代码
最小费最大流(领悟)
1 | |
第三题:客流量分析
题目
多多君开了一家自助餐厅,为了更好地管理库存,多多君每天需要对之前的客流量数据进行分析,并根据客流量的平均数和中位数来制定合理的备货策略。
输入描述
第一行一个整数 N ,表示餐厅营业总天数()。
第二行共 N 个整数,分别表示第 i 天的客流量 R ()。
输出描述
输出共两行:
第一行长度为 N ,其中第 i 个值表示前 i 天客流量的平均值,第二行长度为 N ,其中第 i 个值表示前 i
天客流量的中位数。
示例
1 | |
代码
用堆存储,快速计算中位数
1 | |