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

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

筛选

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

解题思路:如果把所有区间分为k倍区间和非k倍区间,观察一下他们之间的区别,k倍区间的和modk后等于0,而非k倍区间的和modk后等于n,n是介于1至k-1的数.再来思考一下如何得到k倍区间,第一种情况,本身就是k倍区间,不那么用做任何操作,

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

求前缀和a[],各自对K取模,若是a[i]==0,代表他自身就符合条件,ans++,这是答案的一部分;若取模后!=0,则将相同的模分类计数,在相同模的前缀中任意选两个位置相减即满足条件,所以另一部分答案为:在m个相同模的前缀和中能选出多少个两两组合(i

前缀和数组+数论中的组合思想优化

摘要:解题思路: 这是蓝桥杯2017年B组的最后一道编程题。  首先此题想到前缀和的思想,用前缀和数组的两项相减得到字串之和,能通过33%的数据,差不多是N<=1000左右时能通过。 其次如果想要100%通……

k倍区间 (Java代码)

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

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

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

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

解题思路:注意事项:(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(

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