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

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

筛选

c++同余数定理解决

摘要:解题思路:原本想利用前缀和解决问题,但是看到数据量如此庞大就知道需要进行优化了 核心就是 a mod k == b mod 时,|a-b| mod k==0 利用这个就可以进行优化注意事项:参考代码:……

17行代码解决

如果第i+k个前缀和第i个前缀和的余数相等,那么区间(i,i+k)是k的倍数```cpp#includeusingnamespacestd;constintnmax=1e5+5;longlongans,n,k,cnt[nmax],sum;intmain(){cin>>n>>k;cnt[0]=1;for

前缀和+组合数+取余公式转换

解题思路:注意事项:(b-a)%k=(b%k-a%k)%k,因为两个余数一样的话,相减就是0啊!!!!!!!!!!所以任取余数相同的两个数参考代码:n,k=map(int,input().split())a=[0]sum=[0]*(n+10)cnt=0st=[0]*(n+10)foriinrange(

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

##枚举,前缀和,同余定理**解题思路**:用前缀和预处理+枚举区间两端点的时间复杂度是O(n^2^)的,不够高效。我们可以用一些数论知识进一步优化。[同余定理](https://baike.baidu.com/item/%E5%90%8C%E4%BD%99%E5%AE%9A%E7%90%86/121

k倍区间 (Java代码)

摘要:import java.util.Scanner; public class Main {    public static void main(String []args){  ……