#abc473e. K-Divisible Subarrays
K-Divisible Subarrays
题目描述
给定一个由非负整数组成的长度为 的序列 。
对一个由非负整数序列组成的、长度不小于 的序列 ,定义它的得分为: 当中,元素总和能被 整除的那些序列的个数。
请求出:把 划分成一段或多段连续子序列所得到的序列组,其得分的最大值。
这里,把长度为 的序列 划分成一段或多段连续子序列,是指取一个长度不小于 的整数序列 ,满足 ,然后构造出下面 个序列(其中约定 ):
- $(A_{l_i}, A_{l_i+1}, \ldots, A_{l_{i+1}-1}) \quad (1 \le i \le k)$
输入格式
N K
A_1 A_2 ... A_N
输出格式
输出答案。
输入示例 1
6 10
6 8 2 2 6 4
输出示例 1
2
示例 1 说明
例如可以把 划分成 这 段。第 段与第 段的元素之和分别是 和 ,都是 的倍数,所以 的得分是 。
不存在得分不小于 的划分方式,故输出 2。
输入示例 2
8 1
0 0 0 0 0 0 0 0
输出示例 2
8
示例 2 说明
时任何整数都能被整除,所以把每个元素单独切成一段就能得到 分,这也是上限。这组数据用来检验 的边界。
输入示例 3
30 8
5 0 4 2 7 3 2 3 2 4 0 1 4 0 4 1 7 5 2 5 0 3 6 6 2 3 2 2 4 2
输出示例 3
8
示例 3 说明
而答案只有 ,说明大部分位置切开都不划算。这组数据规模适中但结构不平凡,可以用来对拍:把它和「枚举所有 种划分」的暴力程序比对,能有效验证做法是否正确。
约束条件
- 所有输入值均为整数