解题思路:
计算前缀和后取余,余数一致即相差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 人评分
C语言训练-求具有abcd=(ab+cd)2性质的四位数 (C语言代码)浏览:1367 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:1053 |
大神老白 (C语言代码)浏览:712 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:615 |
C语言程序设计教程(第三版)课后习题8.4 (Java代码)浏览:728 |
C语言程序设计教程(第三版)课后习题9.1 (Java代码)浏览:471 |
【亲和数】 (C语言代码)浏览:855 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:449 |
P1000 (C语言代码)浏览:868 |
IP判断 (C语言代码)浏览:533 |