86分呜呜不知道哪里错了 求大佬指点
查看原帖
86分呜呜不知道哪里错了 求大佬指点
855456
ZenithOvO楼主2024/3/26 20:01
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
int k;
signed main(){
	cin>>n>>k;
	int cnt=0;
	int a[n+5];
	int s[n+5]={0};
	int m[n+5]={0};
	for(int i=1;i<=n;++i){
		cin>>a[i];
		s[i]=a[i]+s[i-1];//前缀和数组1-n 
	}
	for(int i=1;i<=n;++i){
		m[s[i]%k]+=1;//记录模数量数组 
	}
	for(int i=0;i<=k;++i){
		cnt+=m[i]*(m[i]-1)/2;//两两为一个子序列 
	}
	printf("%d",cnt+m[0]);//补加单个子序列即单个数字为k的倍数的情况 
	return 0;
}
2024/3/26 20:01
加载中...