Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

CF1630D Flipping Range

cxqghzj·2024-09-08 10:33·6 次阅读

CF1630D Flipping Range

题意#

给定序列 A,以及下标集合 B,每次操作可以选择 xB,并再 A 中随意挑选一个长度为 x 的子段翻转正负,求可能的 Ai 的最大值。

Sol#

不难注意到所有的操作都能被 gcd 来表示。

s = \gcd(B)

不难注意到一个操作,即是 [1, s], [2, s + 1]

因此对于 s 的模数分组,若同一组的负数数量为偶数,则答案为绝对值之和,若为奇数,则为绝对值之和减去绝对值最小的数。

还有一种情况,若第一次操作 [1, s],会翻转每一组的奇偶,单独判断一下即可。

posted @   cxqghzj  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
目录