100726C
Posted 123456
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了100726C相关的知识,希望对你有一定的参考价值。
显而易见,我们要找子串,每次记录前缀和,算出余数,然后通过一个数组保存余数,答案就是加上之前余数的总和,要注意整除的情况
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int num[1000010]; int main() { int T;scanf("%d",&T); while(T--) { int ans=0,sum=0,n,d;memset(num,0,sizeof(num)); scanf("%d%d",&d,&n); for(int i=1;i<=n;i++) { int a;scanf("%d",&a); sum=(sum+a)%d; if(sum==0) ans++; ans+=num[sum]; num[sum]++; } printf("%d\n",ans); } return 0; }
以上是关于100726C的主要内容,如果未能解决你的问题,请参考以下文章