昨晚学妹参加了B站秋招笔试,还想考考我?

简介: 昨晚学妹参加了B站秋招笔试,还想考考我?

学妹昨晚参加了B站的2022届秋招算法笔试,做完给我发来了一道题,想考考我,说挺难的。

我看了两分钟,给她发去了我的思路。然后学妹一眼就看懂了,立马秒过。

那么这道题到底是怎么做的呢?

题目要求将个数切分成块,求每块的序号乘上该块内数字之和的最大值。

那么首先我们可以用来表示前缀和,也就是。

然后假设个子序列中,第个子序列的末尾元素为,其中。那么第个子序列的元素和就可以用前缀和来表示为。

然后题目要求的最大值就可以表示为:

展开并化简就可以得到:

后面一项就是整个数组之和的倍,是一个定值。所以要求这个式子的最大值,就是求的最小值。

又因为,所以就是求的最小值。

可以发现,这个前缀和其实是互不干扰的,所以只需要对所有的前缀和进行排序,取最小的个就行了。

C++代码如下:

#include <stdio.h>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 300010;
ll a[N];
int main() {
    int n, k;
    scanf("%d%d", &n, &k);
    for (int i = 0; i < n; ++i) {
        scanf("%lld", &a[i]);
        if (i) a[i] += a[i-1];
    }
    sort(a, a+n-1);
    ll res = 0;
    for (int i = 0; i < k-1; ++i)
        res += a[i];
    res = -res + k * a[n-1];
    printf("%lld\n", res);
    return 0;
}

Python代码:

n, k = [int(x) for x in input().strip().split(" ")]
a = [int(x) for x in input().strip().split(" ")]
S = [sum(a[:i+1]) for i in range(n-1)]
S.sort()
res = -sum(S[:k-1]) + k * sum(a)
print(res)
相关文章
|
6月前
|
Java
2023金九银十通过率最高的大厂面试真题汇总,已助500+人成功上岸
2023年已经接近尾声了,疫情的影响也在逐渐减小,市场慢慢复苏。 不过最近还是会有一些读者粉丝朋友反馈,“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了,是越来越多的公司需要【中、高级Java工程师】。 企业的用人需求越来越高,面试通过率也就越来越低。市场依旧很卷,只不过卷的是技术,卷的是经验。 结合了9、10月份最新面试动向,给大家准备了一套最新大厂面试真题汇总,刷完掌握之后通过技术面基本没有什么问题了! 助大家提升技术、稳稳跳槽涨薪! 必备面试题+八股文 2023大厂最新面试题汇总 资料里像这样的例题和说
61 0
2024金九银十通过率最高的大厂面试真题汇总,已助500+人成功上岸
不过最近还是会有一些读者粉丝朋友反馈,“Java市场饱和了”、“大环境还是不好”、“投几十个简历都没有一个约面的”。其实并不是岗位需求量变少了,是越来越多的公司需要【中、高级Java工程师】。
|
编解码 算法 网络协议
|
算法 Java 关系型数据库
圆梦腾讯之后,我收集整理了这份“2023春招常见面试真题汇总”
大家看我前几天的文章就能够知道,我在今年春招中成功拿到了腾讯Java工程师的Offer!在我拿到Offer之后,我就在想,能不能够把我和几个哥们这两个月面试过程中经常被问到的面试进行一个收集整理,能够帮助大家在面试的时候更加得心应手,也能少走一些弯路!
|
大数据 测试技术 程序员
【面试邀请】温大大和他的朋友们,日常都是怎么「摸鱼+加薪」的?
大家好,我是温大大 就像马丁·路德·金说过一句话:I have a dream 温大大也有个梦想就是: 1、将毕生所学的「测试技能」倾囊相授传给各位同学,让同学们升职加薪。 2、组建一个测试圈,在这里我们可以:讨论「测试」技术问题、揭秘「测试」薪酬、分享「面试」套路。
【面试邀请】温大大和他的朋友们,日常都是怎么「摸鱼+加薪」的?
|
消息中间件 NoSQL 算法
双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么
双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么
188 0
双非硕士的辛酸求职回忆录:第 1 篇 一份让面试官满意的简历究竟要做到什么
|
网络协议 搜索推荐 JavaScript
双非硕士的辛酸求职之旅--第 5 篇:好开心我进入了面试环节中,那么我该如何自我介绍?
双非硕士的辛酸求职之旅--第 5 篇:好开心我进入了面试环节中,那么我该如何自我介绍?
163 0
双非硕士的辛酸求职之旅--第 5 篇:好开心我进入了面试环节中,那么我该如何自我介绍?
|
机器学习/深度学习 算法 前端开发
秋招上岸!双非本科,从外包实习到秋招收获阿里、美团、B站意向书!
大家好,我是路飞,今天这篇文章是来还愿的!秋招顺利结束,感谢大家一直以来的支持和陪伴!
秋招上岸!双非本科,从外包实习到秋招收获阿里、美团、B站意向书!
|
消息中间件 算法 前端开发
双非本科22届暑期实习,成功拿到B站、阿里实习offer
拼一把不一定成功,但是不试试看肯定没有结果!
双非本科22届暑期实习,成功拿到B站、阿里实习offer