bjyb


私信TA

用户名:dotcpp0610982

访问量:1408

签 名:

等  级
排  名 2062
经  验 2390
参赛次数 0
文章发表 23
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:
计算前缀和后取余,余数一致即相差k倍.
注意事项:
c++注意开long long,注意从0开始。
参考代码:

#include<bits/stdc++.h>
using namespace std;
#define maxx 300000
#define int long long
int all[maxx];
int M[maxx];
int ans;
signed main()
{
  cin>>n>>k;
  for(int i=1;i<=n;++i) cin>>all[i];
  for(int i=1;i<=n;++i) all[i]+=all[i-1];
  for(int i=1;i<=n;++i) all[i]=all[i]%k;
  for(int i=0;i<=n;++i) ++M[all[i]];
  for(int i=0;i<=n;++i)
  {
    --M[all[i]];
    ans+=M[all[i]];
  }
  cout<<ans;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区