AT_pakencamp_2020_day1_k Gcd of Sum题解

Link

我们可以发现几个简单的小性质:

  1. 最终的答案一定是 ∑ i = 1 N A i \sum_{i=1}^{N} A_i ∑i=1NAi 的约数。
  2. 假设最后的答案是 g g g,我们先对 A A A 做一下前缀和 s s s,由于答案要划分成若干连续子序列,所以一定存在若干个 i i i 使得 g ∣ s i g|s_i g∣si,这些位置都是可以作为划分点的。显然,如果存在 k k k 个划分点,则我们可以将序列划分至多 k + 1 k+1 k+1 份,少于 k + 1 k+1 k+1 份也一定是可以划分出来的。

于是我们枚举 ∑ i = 1 N A i \sum_{i=1}^{N} A_i ∑i=1NAi 的约数 g g g,对于每个约数扫一遍序列求出划分点的数量 k k k,对于 1 1 1 到 k k k 的答案全部对 g g g 取 max ⁡ \max max 即可。

时间复杂度 O ( M N ) O(\sqrt{M} N) O(M N),其中 M = ∑ i = 1 N A i M=\sum_{i=1}^{N} A_i M=∑i=1NAi。不过显然 M M M 的约数不会很多,这个是跑不满的。

相关推荐
机器人零零壹1 小时前
技术白皮书:iRobotCAM如何解决机器人激光切割应用中的核心难点,从CAD离线编程到双目视觉定位与轨迹自适应提升复杂空间曲线切割的精度、效率与柔性化水平
人工智能·算法
布莱克6052 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
ZhengEnCi3 小时前
大模型的分类到底怎么分:从基础模型到推理模型、从通用到专用的完整图谱
算法
取名真是4 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
罗西的思考5 小时前
【轻量化复刻大模型 / KIMI K3】KDA 模块交互式演示
人工智能·算法·机器学习
沫璃染墨7 小时前
从零入门计算机网络系列(十二):HTTP长连接与会话管理详解——从Connection到Cookie与Session
linux·服务器·c++·tcp/ip·ubuntu·http·交互
nm_zfyjt7 小时前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
xiaoye-duck8 小时前
《C++ 项目:手写大模型接入 SDK》DeepSeek接口设计(下):流式响应实现和测试
开发语言·网络·c++·语言模型
w_zero_one8 小时前
算法--构造
java·数据结构·算法
其实防守也摸鱼8 小时前
信创安全竞赛知识总结与题库
大数据·网络·人工智能·算法·安全·php