5095:果园
文件提交:无需freopen
内存限制:512 MB
时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:1
解决:0
题目描述
# 果园
## 题目描述
在一个阳光明媚的村庄里,小 $A$ 有一片美丽的果园。
果园里种着一排果树,这些果树从左到右依次排列,共有 $N$ 棵。每棵果树上都结了许多果实,第 $i$ 棵果树上结了 $A_i$ 个果子。
小明计划在丰收的季节里,从这些果树中挑选一段连续的树,将收获的果子分给村里的 $M$ 个小伙伴。他希望每个小伙伴都能**分到同样数量的果子**,因此他需要选择一段连续的果树,使得**这些树上果子的总数是 $M$ 的倍数**。
具体来说,小明需要找到所有可能的区间 $[L, R]$ ,满足以下条件:
- $1 \leq L \leq R \leq N$ ,其中 $N$ 是果树的数量。
- 从第 $L$ 棵果树到第 $R$ 棵果树(包含第 $L$ 棵和第 $R$ 棵)的果子总数 $A_L + A_{L+1} + \dots + A_R$ 是 $M$ 的倍数。
你的任务是帮助小明计算出,共有多少个这样的区间 $[L, R]$ 满足条件。
## 输入格式
第一行包含两个整数 $N$ 和 $M$ ,分别表示果树的数量和村里小伙伴的数量。
第二行包含 $N$ 个整数 $A_1, A_2, \dots, A_N$ ,表示每棵果树上的果子数量。
## 输出格式
输出一个整数,表示满足条件的区间 $[L, R]$ 的总数。
## 样例
### 样例输入 1
```text
3 2
4 1 5
```
### 样例输出 1
```text
3
```
### 样例输入 2
```text
13 17
29 7 5 7 9 51 7 13 8 55 42 9 81
```
### 样例输出 2
```text
6
```
### 样例输入 3
```text
40 6
1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 1 1 1 1 2 2 1 1 4 1 5 1 5
```
### 样例输出 3
```text
154
```
## 说明/提示
样例 $1$ 说明
果园有 3 棵果树,果子数量分别为 4、1、5,小伙伴数量为 2。小明需要找到所有连续的果树区间,使得这些树上的果子总数是 2 的倍数。
具体分析如下:
- 区间 $[1, 1]$ :只有第 1 棵树,果子总数 $4$ ,是 2 的倍数。
- 区间 $[1, 2]$ :第 1 到第 2 棵树,果子总数 $4 + 1 = 5$ ,不是 2 的倍数。
- 区间 $[1, 3]$ :第 1 到第 3 棵树,果子总数 $4 + 1 + 5 = 10$ ,是 2 的倍数。
- 区间 $[2, 2]$ :只有第 2 棵树,果子总数 $1$ ,不是 2 的倍数。
- 区间 $[2, 3]$ :第 2 到第 3 棵树,果子总数 $1 + 5 = 6$ ,是 2 的倍数。
- 区间 $[3, 3]$ :只有第 3 棵树,果子总数 $5$ ,不是 2 的倍数。
因此,满足条件的区间有 $[1, 1]$ 、 $[1, 3]$ 、 $[2, 3]$ ,总数为 3。
数据范围
对于 $10\%$ 的数据,满足 $1 \le N \le 100$ , $1 \le M \le 10$ 。
对于另外 $25\%$ 的数据,满足 $1 \le N \le 10^5$ , $1 \le M \le 9$ 。
对于 $100\%$ 的数据,满足 $1 \leq N \leq 10^5$ , $2 \leq M \leq 10^9$ , $1 \leq A_i \leq 10^9$ 。
---
**题目来源:** 25年3月-C组(大咖)