题解 1882: 蓝桥杯2017年第八届真题-k倍区间

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯2017年第八届真题-k倍区间-题解(C++代码)

思路:前缀和,用sum[i]表示前i项和,那么区间[l,r]的和就是sum[r]-sum[l-1],因为要是k的倍数,所以(sum[r]-sum[l-1])%k==0,整理一下就是sum[r]%k==sum[l-1]%k,所以统计让这个式子成立的项就好了。

蓝桥杯2017年第八届真题-k倍区间 (C++代码)

摘要:        前缀和对 K 取模,统计答案的时候就是前面有多少个前缀和与该位置前缀和 % K 下相等,这样相减之后这些区间和 % K 下等于 0,也就是 K 的倍数了,我用分块来维护(数据结构学傻了……

蓝桥杯2017年第八届真题-k倍区间 (Java代码)

摘要:解题思路:气死我了,写道一半,突然没网了,然后写的东西全不见了,生气!               这道题,暴力不可以,所以需要想办法。用数学思维来想一想                1,2,3,4……