解题思路:
注意事项:(b-a)%k=(b%k-a%k)%k,因为两个余数一样的话,相减就是0啊!!!!!!!!!!所以任取余数相同的两个数
参考代码:
n,k=map(int,input().split())
a=[0]
sum=[0]*(n+10)
cnt=0
st=[0]*(n+10)
for i in range(n):
a.append(int(input()))
for i in range(1,n+1):
sum[i]=sum[i-1]+a[i]
st[sum[i]%k]+=1
for i in range(0,k):
cnt+=st[i]*(st[i]-1)//2#Cn2任取两个余数
print(cnt+st[0])#因为st[0]本身的元素也是一个k倍区间
0.0分
0 人评分
Tom数 (C语言代码)浏览:2014 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:816 |
C二级辅导-同因查找 (C语言代码)浏览:663 |
A+B for Input-Output Practice (C++代码)浏览:609 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:799 |
C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:595 |
【蟠桃记】 (C语言代码)浏览:1036 |
母牛的故事 (C语言代码)浏览:716 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:564 |
C二级辅导-求偶数和 (C语言代码)浏览:674 |