和为 K 的倍数
课程自编 · 前缀和与余数
题目描述
给出一个长度为 n 的正整数序列 a1,a2,…,an 和正整数 K。统计有多少个非空连续子区间 [l,r] 满足
al+al+1+⋯+ar
是 K 的倍数。
输入格式
第一行两个整数 n,K。第二行 n 个正整数 a1,a2,…,an。
输出格式
输出一个整数,表示和为 K 的倍数的非空连续子区间个数。
数据范围与约定
1≤n≤2×105,1≤K≤105,1≤ai≤109。
样例输入
5 3
1 2 3 4 5
样例输出
7
样例说明
前缀和模 3 的余数为 0,1,0,0,1,0。余数 0 出现 4 次,任取两个端点得到 6 个区间;余数 1 出现 2 次,得到 1 个区间。总数为 6+1=7。
说明
课程自编题,数据由 src/gen.py 生成。