模段(mseg)
题目描述
Y 同学有一个长度为 n 的非负整数序列 a1,a2,…,an 和一个正整数 m。他想统计有多少个非空连续区间 [l,r] 满足
i=l∑rai
能够被 m 整除。
现在给定多组数据,请你分别求出这样的区间数量。
输入格式
第一行包含一个整数 T,表示测试组数。
对于每组测试数据,第一行包含两个整数 n,m。
第二行包含 n 个整数 a1,a2,…,an。
输出格式
对每组测试数据,输出一行一个整数,表示满足条件的非空连续区间数量。
样例
样例输入 #1
2
5 3
1 2 3 4 5
4 5
5 5 5 5
样例输出 #1
7
10
数据范围与约定
对于 100% 的数据,保证 1≤T≤2×105,1≤∑n≤2×105,1≤m≤109,0≤ai≤109。
| 测试点编号 |
分值 |
∑n≤ |
m≤ |
ai≤ |
特殊性质 |
| 1∼2 |
10 |
2000 |
100 |
106 |
无 |
| 3∼5 |
15 |
105 |
109 |
109 |
特殊性质 A |
| 6∼8 |
2×105 |
1 |
特殊性质 B |
| 9∼12 |
20 |
5×104 |
109 |
无 |
| 13∼16 |
105 |
| 17∼20 |
2×105 |
- 特殊性质 A:保证每组数据的 n≤2000。
- 特殊性质 B:保证 m=1。