输入输出样例

示例

输入

5 2
1
2
3
4
5

输出

6

运行限制

  • 最大运行时间:2s
  • 最大运行内存: 256M

emmm之前看到想着要不要直接O(n^2)暴力来着。。。

思路如下所示:

我们很容易想到两层循环去暴力做,但是其实有更好的办法。

首先是前缀和的概念,我们每读入一个数,就把他和前面的数所有数相加,求出所有位置的前缀和,这样有什么好处呢,好处在于我们对于任意区间[i,j]的和,都可以用sum[j]-sum[i]实现。这样就用O(n)的时间复杂度可以求任意区间的和。

其次是对k取余数,试想一下,若两个数字a,b如果对k都余m,那么其相减不就是可以抵消余数了吗。所以,原来的问题转化为求0,1,2...k-1的余数的前缀和各有多少个,对相同余数的前缀和,可以两两组成区间。

一点小细节就是注意余数为0的可以自己组成一个区间。

不过这题明明数据在10^5内,但是用int的cnt计数却会出错,不大明白为什么,有无懂个说一下~感激不尽~

代码如下所示:

#include <bits/stdc++.h>
using namespace std;
const int MAX_LEN=100010;
typedef long long ll;
int num[MAX_LEN];//记录前缀和
ll cnt[MAX_LEN];//记录对应余数的数目 这里为什么不能是int数组
int main()
{// 请在此输入您的代码int n,k;cin>>n>>k;ll sum=0;for(int i=0;i<n;++i){cin>>num[i];sum+=num[i];cnt[sum%k]++;}ll ans=cnt[0];for(int i=0;i<k;++i){ans+=cnt[i]*(cnt[i]-1)/2;}cout<<ans<<endl;return 0;
}

蓝桥杯真题:k倍区间相关推荐

  1. 蓝桥杯真题 k倍区间 c++代码实现 给定一个长度为 N 的数列,A1, A2, ··· AN,如果其中一段连续的子序列 Ai,Ai+1,⋯A j ​ ( i \leq ji≤j ) 之

    文章目录 题目描述 输入描述 输出描述 输入输出样例 示例 运行限制 代码 思路 题目描述 给定一个长度为 N 的数列,A1, A2, ···AN,如果其中一段连续的子序列 Ai,Ai+1, ···A ...

  2. 蓝桥杯第八届省赛JAVA真题----k倍区间

    标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍 ...

  3. [蓝桥杯][2017年第八届真题]k倍区间(数学+思维)

    题目描述 给定一个长度为N的数列,A1, A2, - AN,如果其中一段连续的子序列Ai, Ai+1, - Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. 你能求出 ...

  4. 【每日蓝桥】52、一七年省赛Java组真题“K倍区间”

    你好呀,我是灰小猿,一个超会写bug的程序猿! 欢迎大家关注我的专栏"每日蓝桥",该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想.数据结构等内容, ...

  5. 蓝桥杯2017初赛-k倍区间-前缀和

    题目描述 给定一个长度为N的数列,A1, A2, - AN. 如果其中一段连续的子序列Ai, Ai+1, - Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间. 你能求 ...

  6. 【蓝桥杯 - 练习】k倍区间(思维,数组)

    题干: http://lx.lanqiao.cn/problem.page?gpid=T444 问题描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1 ...

  7. 蓝桥杯真题-连号区间数-枚举

    题目描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...

  8. 蓝桥杯真题2017-2021

    刷完近几年真题,感觉理解完之后,拿奖问题不大,本人这次获得2022年蓝桥杯javaB组省一,以下是历年javaB组省赛题目. 文章目录 2017年真题 一.购物单 二.纸牌三角形 三.承压计算 四.魔 ...

  9. 第五届蓝桥杯真题解析【JavaC组】

    第五届蓝桥杯真题解析[JavaC组] 业精于勤,荒于嬉:行成于思,毁于随.--韩愈 文章目录 ***第五届蓝桥杯真题解析[JavaC组]*** 前言 A:猜年龄 B:等额本金 C:猜字母 D:大衍数列 ...

  10. # 2014年蓝桥杯真题CC++B组

    2014年蓝桥杯真题C/C++B组 1.啤酒和饮料 题目描述 啤酒每罐2.3元,饮料每罐1.9元,小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道她买的啤酒比饮料的数量多,请你计算他买了几罐啤 ...

最新文章

  1. 模板方法模式小记【原创】
  2. java 反射 速度_Java反射,但速度更快
  3. TMS320F28335——IO控制/定时计操作
  4. python脚本-记录Python脚本的运行日志的方法
  5. 区块链支付平台技术的应用
  6. layui select下拉框选项不显示
  7. 小米android版本升级包下载,小米11 Android 12 Beta 1更新包
  8. 如何通过细节来看业务流程ERP管理系统的成熟度?
  9. 【食安云桥】python 文件内批量长度除以3.5替换
  10. 计算机软件方面的基金,天天基金
  11. 关于TP3.2.3的反序列化学习
  12. Victor Zue教授的创新观
  13. attr 与prop 的区别
  14. android openCV检测图像的基本特征,包括Canny边缘检测、Harris角点检测、霍夫直线检测-基于Android studio
  15. 自学Python day03-if语句
  16. 数字图像处理常用函数
  17. 信息泄漏时代,如何让自己的密码更安全?
  18. js给动态添加的元素添加属性
  19. ThinkPHP历史漏洞
  20. 问道账号服务器已满,服务器人数已满 《问道》手游不删档首日战况

热门文章

  1. 用javaScript实现轮播图效果 包括自动变换,按钮控制,上一张下一张切换
  2. iwebAx产品家族之iweb SNS v0.6体验版--不错的开源软件~~
  3. Felica的文件系统
  4. 联想java笔试题20190618
  5. chrome-推荐13个插件
  6. uniapp 打包H5自定义模板
  7. vba中find用法
  8. 如何把html文件转化为mp3,如何将Flash转换为MP3
  9. Python Cartopy地图投影【2】
  10. 使用QFIL升级高通芯片的Android系统