D. 加权连续段

    传统题 1000ms 256MiB

加权连续段

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

加权连续段

题目描述

给定一个长度为 nn 的整数数组 aa,以及一个整数 kk

你需要从数组中选择一个非空连续子数组 [l,r][l,r],其中 1lrn1 \le l \le r \le n

设这个连续子数组的元素和为:

S=al+al+1++arS=a_l+a_{l+1}+\cdots+a_r

设这个连续子数组中所有元素绝对值的最大公约数为:

G=gcd(al,al+1,,ar)G=\gcd(|a_l|,|a_{l+1}|,\ldots,|a_r|)

这个连续子数组的得分定义为:

S+k×GS+k\times G

请你求出所有非空连续子数组中的最大得分。

输入格式

第一行输入一个整数 TT,表示测试数据组数。

对于每组测试数据:

第一行输入两个整数 n,kn,k,表示数组长度和参数 kk

第二行输入 nn 个非零整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示数组中的元素。

数据范围

对于所有测试数据,满足:

  • 1T2×1041 \le T \le 2 \times 10^4
  • 1n2×1051 \le n \le 2 \times 10^5
  • 所有测试数据的 nn 之和不超过 2×1052 \times 10^5
  • 0k1090 \le k \le 10^9
  • 109ai109-10^9 \le a_i \le 10^9
  • ai0a_i \ne 0

保证最终答案在 6464 位有符号整数范围内。

输出格式

对于每组测试数据,输出一行一个整数,表示所有非空连续子数组中的最大得分。

输入输出样例 #1

输入 #1

7
5 1
6 -4 10 -2 8
3 2
-5 -10 -15
3 5
12 18 6
4 1
8 -3 6 9
3 1
-6 1 1
6 0
-2 3 -1 4 -5 2
2 1000000000
1000000000 1000000000

输出 #1

20
15
108
21
3
6
1000000002000000000

说明/提示

对于第 11 组数据,选择子数组 [1,5][1,5],有:

S=6+(4)+10+(2)+8=18S=6+(-4)+10+(-2)+8=18 G=gcd(6,4,10,2,8)=2G=\gcd(6,4,10,2,8)=2

因此得分为:

18+1×2=2018+1\times 2=20

对于第 22 组数据,必须选择非空连续子数组。选择子数组 [3,3][3,3],有:

S=15,G=15S=-15,\quad G=15

因此得分为:

15+2×15=15-15+2\times 15=15

对于第 33 组数据,选择子数组 [2,2][2,2],有:

S=18,G=18S=18,\quad G=18

因此得分为:

18+5×18=10818+5\times 18=108

对于第 44 组数据,选择子数组 [1,4][1,4],有:

S=8+(3)+6+9=20S=8+(-3)+6+9=20 G=gcd(8,3,6,9)=1G=\gcd(8,3,6,9)=1

因此得分为:

20+1×1=2120+1\times 1=21

对于第 55 组数据,选择子数组 [2,3][2,3],有:

S=1+1=2,G=1S=1+1=2,\quad G=1

因此得分为:

2+1×1=32+1\times 1=3

对于第 66 组数据,k=0k=0,选择子数组 [2,4][2,4],有:

S=3+(1)+4=6S=3+(-1)+4=6

因此得分为 66

77 组数据的答案超过 3232 位整数范围,请使用 6464 位整数保存答案。

【睿爸信奥】入门组算法周赛(20260509)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2026-5-9 0:00
结束于
2026-5-16 0:00
持续时间
4 小时
主持人
参赛人数
17