学妹昨晚参加了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)

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

  1. 2018年秋招笔试面试---小学渣求职历险记(深圳篇)

    前文导读:2018年秋招笔试面试----小学渣求职历险记(中南篇) 我从来没有去过深圳,每次都是从男友那里了解到关于深圳的只言片语,说深圳开放,深圳包容,深圳如何如何-.反正我内心是不以为然的,眼见为 ...

  2. 春招秋招笔试面试时间(2020年)

    春招面试笔试时间 序号 公司 投简历时间 春招笔试面试时间 1 腾讯 2020.3.10 3.17一面(微信) 3.20一面(网盘) 4.7 PCG的研发部 4.12光子侧开一面 4.18光子侧开二面 ...

  3. 关于双非本科2020秋招,我想说的

    关于双非本科2020秋招,我想说的(仅限技术岗,java开发) 首先说明,对于双非的学校和学生我没有任何的恶意,因为我就双非学校毕业的. 本人安徽某双非一本,计算机专业,大四,近期刚结束了我的秋招,拿 ...

  4. 保研面试 算法题_GitHub - 13538899384/AlgorithmTest: 春招秋招笔试题目汇集

    秋招总结(Android开发工程师) 前言 从春招过渡秋招,连续半年时间都是努力奔波在求职路上,找工作确实非常累,无论是生理上还是心理上,记得我有次从广州跑过去深圳面完百度,接着面蘑菇街,再接着参加深 ...

  5. 【笔试题】京东2017秋招笔试真题

    笔试题 京东2017秋招笔试真题 1.进制均值 时间限制 C/C++语言 1000MS;其他语言 3000MS 内存限制 C/C++语言 65536KB;其他语言 589824KB 题目描述 尽管是一 ...

  6. 腾讯2019秋招笔试真题

    1.小Q爬塔 描述:小Q正在攀登一座宝塔,这座塔很特别,塔总共有n曾层,但是没两层之间的净高却不相同,所以造成了小Q爬过每层的时间也不同.如果某一层的高度为x,那么爬过这一层锁需的还是件也是x.小Q孩 ...

  7. 美团点评2017秋招笔试编程题

    美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...

  8. 腾讯2018秋招笔试真题(2)

    腾讯2018秋招笔试真题 3.画家小Q [题目描述]画家小 Q 又开始他的艺术创作.小 Q 拿出了一块有 NxM 像素格的画板, 画板初始状态是空白 的,用'X'表示. 小 Q 有他独特的绘画技巧,每 ...

  9. 腾讯2018秋招笔试真题(1)

    腾讯2018秋招笔试真题 小Q的歌单 [题目描述]小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个 总长度正好为 K 的歌单,每首歌最多只能在歌 ...

  10. 腾讯2018秋招笔试真题——安排机器

    本文参考自腾讯2018秋招笔试真题--安排机器 查看原文: 原文地址 题目描述:小Q的公司最近接到m个任务,第i个任务需要Xi的时间去完成,难度等级为yi.                 小Q拥有n ...

最新文章

  1. 远程SSH连接服务与基本排错
  2. spring知识概要
  3. CentOS 环境下配置MySQL8.0
  4. Spring的refresh()方法调用过程
  5. 基于密度的异常值检测方法整理
  6. java模式之装饰模式
  7. oracle itl解析,oracle数据块dump文件中ITL详解
  8. 深度linux安装virtualbox,【玩转deepin】如何安装VirtualBox增强功能使得deepin系统全屏显示?...
  9. [转载] 令牌桶算法和漏桶算法python_排序算法(七):Bucket Sort 桶排序
  10. [安卓历险记] Error when loading the SDK
  11. Android Binder实现浅析-Binder驱动
  12. matlab 使用,MATLAB使用方法
  13. 收银机收款机USB通讯接口(341驱动) 可以用于客显 小票打印机
  14. 北京住房公积金联名卡政策问答
  15. 【SecureFx服务器无法上传文中文件】
  16. rtthread之工作队列
  17. 上海大厂Android面试经历:史上最通俗计算机网络分层详解,通用流行框架大全
  18. 深圳Web前端学习:5G对Web前端发展的影响--千锋
  19. 我是如何从测试转为产品的
  20. JAVA计算机毕业设计学生会管理系统2021Mybatis+源码+数据库+lw文档+系统+调试部署

热门文章

  1. 【自爆系列】浅谈我前端开发的那些糗事
  2. 在C++中各类型拼接成一个string
  3. delphi的多线程编程
  4. 2015 HUAS Summer Trainning #5~N
  5. Android自定义之流式布局
  6. solr学习笔记-linux下配置solr
  7. Oracle网络配置用到的sqlnet.ora,tnsnames.ora,listener.ora文件
  8. mysql主从同步图
  9. LC-410 分割数组的最大和
  10. [lua]紫猫lua教程-命令宝典-L1-01-11. lua的个人补充