2024-2-28-1230-K倍区间.cpp

2024-2-28-1230-K倍区间.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cstring>
#include <algorithm>
#include<cstdio>
const int N = 1e5+10;
int n,k;
long long s[N],cnt[N];//防止出现数据过大


using namespace std;
int main()
{scanf("%d%d",&n,&k);
for (int i = 1; i <= n; i ++ )
{int m;
scanf("%d", &m);
s[i]=s[i-1]+m;
}

long long res=0;//防止出现数据过大
cnt[0] = 1;
for(int r=1;r<=n;r++)
{int mod=s[r]%k;
res+=cnt[mod];
cnt[mod]++;
}
cout<<res;

return 0;
}