小目标一个亿


私信TA

用户名:1621508392

访问量:102

签 名:

等  级
排  名 50084
经  验 284
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 西北师范大学
专  业

  自我简介:

解题思路: 


注意事项:

参考代码:

#include<stdio.h>

    int main(){

        int n,k,i;

        scanf("%d%d",&n,&k);    

        int a[n],sum[n];                //这里的数组是用变量定义的,于是赋值必须用循环

        long long int ans=0,b[k];    //数组b存储各剩余类个数,当k=1,数组b不是long long测试过不去

        for(i=0;i<n;i++){

            scanf("%d",&a[i]);

         }

        for(i=0;i<k;i++)

            b[i]=0;

        sum[0]=a[0];       

        b[a[0]%k]++;                            

            for(i=1;i<n;i++){

                sum[i]=(sum[i-1]+a[i])%k;            

                b[sum[i]]++;            

        }

        for(i=0;i<k;i++){

            ans+=b[i]*(b[i]-1)/2;

        }

        ans+=b[0];

        printf("%lld",ans);

        return 0;

}


 

0.0分

0 人评分

  评论区

  • «
  • »