小b喜欢和为K的倍数的序列。
现在有一个长度为n的序列A,请问A有多少个非空连续子序列是小b喜欢的。
#include<cstdio> #include<iostream> #include<vector> #include<queue> #include<cstring> #include<algorithm> using namespace std; const int N=3e4+10; int a[N],sum[N],vis[N]; int main(){ int n,k; cin>>n; for(int i=1;i<=n;i++) scanf("%d",&a[i]); cin>>k; int ans=0; vis[0]++; for(int i=1;i<=n;i++){ sum[i]=(sum[i-1]+a[i]+k*10000)%k; ans+=vis[sum[i]]; vis[sum[i]]++; } cout<<ans<<endl; }