代码如下:
#include <algorithm>
#include <string.h>
#include <iostream>
#include <stdio.h>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <set>
using namespace std;
long long sum[100010],k;
int main()
{
int i,j,s,n;
while(~scanf("%d%lld",&n,&k))
{
sum[0]=s=0;
for(i=1;i<=n;i++)
{
scanf("%lld",&sum[i]);
sum[i]+=sum[i-1];
}
for(i=0;i<=n-1;i++)
for(j=i+1;j<=n;j++)
if((sum[j]-sum[i])%k==0)
s++;
cout<<s<<endl;
}
return 0;
}
//时间复杂度:O(n*n) 大概过78%的数据
本文介绍了一个C++程序,用于计算数组中两数之差能被给定整数K整除的不同组合的数量。该程序通过双重循环遍历所有可能的组合并检查它们是否满足条件,时间复杂度为O(n^2),适用于较小规模的数据集。
1498

被折叠的 条评论
为什么被折叠?



