cxqghzj·2024-09-08 10:33·6 次阅读
给定序列 A,以及下标集合 B,每次操作可以选择 x∈B,并再 A 中随意挑选一个长度为 x 的子段翻转正负,求可能的 ∑Ai 的最大值。
不难注意到所有的操作都能被 gcd 来表示。
设 s = \gcd(B)。
不难注意到一个操作,即是 [1, s], [2, s + 1]。
因此对于 s 的模数分组,若同一组的负数数量为偶数,则答案为绝对值之和,若为奇数,则为绝对值之和减去绝对值最小的数。
还有一种情况,若第一次操作 [1, s],会翻转每一组的奇偶,单独判断一下即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步