K倍区间(前缀和+同余)

2017蓝桥杯:k倍区间(前缀和) 标题: k倍区间给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 <= Ai <= 100000) 输出输出一个整数, 阅读详情

题目描述

AcWing1230. K倍区间(前缀和+同余)
给定一个长度为N的数列, A 1 , A 2 , . . . A N A_1, A_2, ... A_N A1​,A2​,...AN​,如果其中一段连续的子序列 A i , A i + 1 , . . . A j ( i < = j ) A_i, A_{i+1}, ... A_j(i <= j) Ai​,Ai+1​,...Aj​(i<=j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。

你能求出数列中总共有多少个K倍区间吗?

输入格式

第一行包含两个整数 N 和 K。

以下 N 行每行包含一个整数 Ai。

5 2
1
2
3
4
5

输出格式

输出一个整数,代表 K 倍区间的数目。

6

数据范围
1 ≤ N , K ≤ 100000 1≤N,K≤100000 1≤N,K≤100000,
1 ≤ A i ≤ 100000 1≤A_i≤100000 1≤Ai​≤100000

C++ (前缀和+同余)

#include <iostream>
using namespace std;
typedef long long LL;
const int N = 1e5 + 10;
int n, k;
LL s[N], cnt[N];

int main() {
	scanf("%d%d", &n, &k);
	
	for (int i = 1; i <= n;i++) {
		scanf("%d", &s[i]);
		s[i] += s[i-1];
	}
	
	LL res = 0; 
	cnt[0] = 1; // // 第一次遇到区间和为0时,应该直接+1,s[i]=0指的是从1到i直接就是满足条件的
	for (int i = 1; i <= n; i++) {
		res += cnt[s[i]%k]; // 这个 s[i]%k 可以和前面取模为 s[i]%k的分别构成一个k倍区间
							// 所以此时又新增了cnt[s[i]%k]个K倍区间
		cnt[s[i]%k]++;
	}
	
	cout << res << endl;
	
	return 0;
}
上证指数30年k线图_金融占星简单解读上证指数30年历史行情 阅读此文需要一定的占星基础知识,本人对于金融知识了解甚少,如有描述错误请包涵指正!影响大众事件发展趋势的都是外行星,即木星-冥王星这5颗,由于时间跨度长达30年,绘制社会行星的K线图工作量太大,所以只以时代行星对这30年行情的简单解读作为分享,在今后的短期分析中会逐渐加入社会行星,甚至在个股分析上还会加入个人行星。那即使只绘制时代行星,所展现出来的信息也无法在一张图上画出来,否则太乱难以分辨,所以... 阅读详情

相关推荐

FPGA与GPU异构计算:重塑嵌入式AI的算力边界与场景定义

本文深入探讨了FPGA与GPU异构计算如何突破嵌入式AI的算力瓶颈。通过分析工业视觉、智能交通及航天等场景,阐述了FPGA负责高速数据采集与预处理,GPU专注复杂AI推理的协同模式,有效解决了传统单一架构在算力、功耗、接口和实时性上的挑战,为嵌入式AI应用提供了高效能解决方案。

spice的博客 486

K倍区间 【详解版 -- 蓝桥杯】

留给世界一抹值得百年回眸的惊艳,沉淀百年来计算机应用之精华与优雅,任岁月流转,低调而奢华的技术交流与探索却是亘古不变。

m0_63613132的博客 3016

蓝牙Mesh安全机制全解析:如何防止你的智能门锁被黑客控制?

本文深入解析蓝牙Mesh安全机制,重点探讨如何保护智能门锁免受黑客攻击。详细介绍了蓝牙Mesh的多层次安全架构,包括密钥管理体系、设备入网流程及实战防护策略,帮助用户构建更安全的智能家居网络。

h3i4j的博客 728

【算法专题】K倍区间问题

力扣之连续子数组之和系列 Leetcode 0523 连续的子数组和 题目描述:Leetcode 0523 连续的子数组和 分析 本题的考点:前缀和、哈希表。 首先求出原数组的前缀和数组s,对于某个s[i],我们希望判断 sum[i] - sum[i-2], sum[i] - sum[i-3], ... , sum[i] - sum[0] 是否存在k的倍数即可。相当于判断sum[i]和sum[k]是否同余即可(0<= k <=i-2),可以使用哈希表。 代码 C++

weixin_42638946的博客 1810

全国大学校园网—拓扑图欣赏

全国大学网络拓扑图(一百张) 典型十张 1、 中央财经大学 2、国防科技大学 3、济南大学 4、西安石油大学 5、南通大学IPV6网络 6、中国矿业大学 7、青海师范大学 8、内蒙古科技大学 9、三峡大学 10、中共江苏省党校 剩余90张 点赞、评论获取 ...

LiBai'S BLOG 5万+

Jetson Thor平台JP7.0版本96712 GMSL相机驱动调试记录

摘要:本文档记录了在Thor Custom Board (JP7.0GA)上配置GMSL摄像头时遇到的视频流问题及调试过程。问题表现为视频设备(/dev/video11)能正常创建,但获取视频时出现"Internal data stream error",而相同配置在AGX Orin JP6.0上运行正常。通过梳理硬件拓扑、v4l2-ctl测试、提升时钟频率及分析内核日志,发现VI引擎未接收到帧数据包。调试步骤包括检查设备树冲突、调整I2C总线配置、修正通道名称,最终通过屏蔽传感器启动时

jzwjzw19900922的博客 1109

【算法】K倍区间

算法题,k倍区间

mei__ying的博客 2923

从零实现深度学习框架——理解正则化(一)

本文介绍解决过拟合与欠拟合的方法——正则化,主要介绍L1和L2正则化。

日积月累,天道酬勤 3393

[蓝桥杯]K倍区间(c++超详解)

资源限制 时间限制:1.0s 内存限制:256.0MB   给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。   你能求出数列中总共有多少个K倍区间吗? 输入格式   -----   第一行包含两个整数N和K。(1 <= N, K <= 100000)   以下N行每行包含一个整数Ai。(1 <= Ai <= 100000) 输出格式

qq_53763705的博客 8260

从模糊到清晰:让AI教相机自动对焦的实战指南

AI自动对焦技术:让模糊照片成为过去式 深度学习驱动的自动对焦技术正颠覆传统摄影,使相机能在复杂场景下智能锁定焦点。相比传统对焦方法在弱光、低对比度环境下的失效,AI通过学习"清晰-模糊"规律,实现全场景精准对焦。本文详细解析了该技术的三大优势: 自适应各种光线条件; 毫秒级对焦速度; 突破物理限制的精度。 通过PyTorch搭建的CNN模型,展示了从数据采集到模型训练的全流程实战方案,包括使用拉普拉斯算子评估图像清晰度等关键技术。该技术已成功应用于手机摄影、工业检测、无人机航拍和安防监

LXY_LOVE36的博客 346

机器学习势能(MLPs) 第一章 基础理论与核心概念 第二章 数据生成与训练集构建

密度泛函理论(DFT)作为现代计算材料科学的基石,通过求解Kohn-Sham方程在电子结构层面提供可靠的势能面信息。然而,其计算复杂度随体系电子数呈O(N3) 至O(N4) 增长,对于包含数百个原子的体系,单点计算往往需消耗数小时至数天的计算资源。这一瓶颈严重限制了分子动力学模拟的时间尺度,传统DFT-MD通常仅能覆盖皮秒量级,远不足以观测扩散、相变等慢动力学过程。经验力场通过解析函数形式描述原子间相互作用,实现了经典力学的计算效率,但其参数化过程高度依赖物理直觉与经验调参。

VectorShift的博客 181

蓝桥杯:k倍区间 前缀和,同余优化

题目描述 思路 通过前缀和计算一个区间的累加和 区间[l, r]的累加和是前缀和数组sum[r]-sum[l-1] 如果这里暴力枚举区间端点,必定超时,于是想到:如果两个数ab之差(a-b)%k = 0,意味着 a%k = b%k,这就好办了 开一个数组cnt记录,cnt[i]表示前缀和数组中,余数为i的sum[某个下标]有多少个 然后不断枚举右端点,查询cnt数组中,与右端点同余的端点数目有...

AKGWSB 's blog 293

【图像拼接(Image Stitching)】关于【图像拼接论文精读】专栏的相关说明,包含专栏使用方法、阅读顺序、创新思路、文章汇总、源码汇总、数据集汇总等。总之,【图像拼接论文相关】看这一篇就够了

为什么会有这篇文章?因为专栏简介里写不下太多东西,只能通过这篇文章和大家交流,算是一个专栏阅读指南吧。说点心里话本来吧,我只想用优快云来记录自己学习【图像拼接】领域论文的过程,对每篇文章有个细致的理解,方便自己反复查阅。设置为付费也是因为涉及论文和本人其他项目需要,防止查重和其他问题,所以价格最开始设置的是专栏付费价格里最高的。起初,确实没有人看,一切也都平淡地度过着。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 4万+

[同余][前缀和]K倍区间

若一段连续子序列[l, r]和为k的倍数 则必定有 sum[r] - sum[l - 1] % k == 0 由同余定理sum[r] % k == sum[l - 1] % k 由输入数据顺序则必定有已输入数据均在当前数据之前 则可用brr数组记录当前数之前的所有模数 得解 typedef long long ll; const int MAXN = 1e6 + 10; ll...

Zeolim的博客 382

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

k倍区间(前缀和 + 同余)

题目描述 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入 第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 <= Ai <= ...

weixin_41988889的博客 159

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

蓝桥杯——K倍区间(JAVA)

给定一个长度为 N 的数列,A1​,A2​,⋯AN​,如果其中一段连续的子序列Ai​,Ai​+1,⋯Aj​ ( i≤j ) 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。你能求出数列中总共有多少个 K 倍区间吗?

qq_63746090的博客 986

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

洛谷P8649[蓝桥杯 2017 省 B] k 倍区间

P8649 [蓝桥杯 2017 省 B] k 倍区间

dydan_rui的博客 891

第八届蓝桥杯C++B组: k倍区间

给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入 ----- 第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1 <= Ai ...

韩江雪de 小屋 858

[蓝桥杯 2017 省 B] k 倍区间(同余&前缀和)

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?两行等长字符串,分别表示初始状态和要达到的目标状态,每行长度小于。数据保证一定存在至少一种方案可以从初始状态和要达到的目标状态。表示反面(是小写字母,不是零),比如可能情形是。source:蓝桥杯 2013 省 B 组 H 题。,如果同时翻转左边的两个硬币,则变为。桌上放着排成一排的若干硬币。小明正在玩一个“翻硬币”的游戏。一个整数,表示最小操作步数。

陈进士学习的博客 478

前缀和求解k倍区间问题

给定一个长度为 N的数列,A1,A2,…AN,如果其中一段连续的子序列Ai,Ai+1,…Aj之和是 K 的倍数,我们就称这个区间 [i,j] 是 K倍区间。你能求出数列中总共有多少个 K倍区间吗?

2302_77698668的博客 209

第八届蓝桥杯 K倍区间

标题: k倍区间 给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入 ----- 第一行包含两个整数N和K。(1 <= N, K <= 100000) 以下N行每行包含一个整数Ai。(1...

iroy33的博客 201

P8649 [蓝桥杯 2017 省 B] k 倍区间:同余,前缀和,组合数,区间个数

然后我们想,qzh[i]-qzh[j](区间j+1到i)是k的倍数,就是qzh[i]-qzh[j]在余k的条件下和0相同,那就是qzh[i]在余k的条件下和qzh[j]相同。那么,我们枚举右端点,只要有和它的余数相同的,就是符合的左端点。给定一个长度为 NN 的数列,A1,A2,⋯ANA1​,A2​,⋯AN​,如果其中一段连续的子序列 Ai,Ai+1,⋯Aj(i≤j)Ai​,Ai+1​,⋯Aj​(i≤j) 之和是 KK 的倍数,我们就称这个区间 [i,j][i,j] 是 KK 倍区间。

2301_80718054的博客 594

AcWing 1230. K倍区间

题目链接 给定一个长度为 NN 的数列,A1,A2,…AN 如果其中一段连续的子序列 Ai,Ai+1,…Aj 之和是 K 的倍数,我们就称这个区间 [i,j] 是 K 倍区间。 你能求出数列中总共有多少个 K 倍区间吗? 输入格式 第一行包含两个整数 N 和 K。 以下 N 行每行包含一个整数 Ai。 输出格式 输出一个整数,代表 K 倍区间的数目。 数据范围 1≤N,K≤1000001≤N,K≤100000, 1≤Ai≤100000 特别暴力做法: #include <cst

m0_60763381的博客 374

2017--K倍区间(同余做差)(Map)

2017–K倍区间 问题描述   给定一个长度为N的数列,A1, A2, … AN,如果其中一段连续的子序列Ai, Ai+1, … Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入格式   第一行包含两个整数N和K。(1 <= N, K <= 100000)   以下N行每行包含一个整数Ai。(1 &lt...

Claire的博客 206

蓝桥杯 K倍区间

蓝桥杯 K倍区间 c++ 思路: 首先利用暴力法二重循环肯定是不行的,亲测只能通过一个案例 那就需要采用一定的算法啦 1.前缀和: 什么是前缀和,就是数组中的每个元素变成前面所有元素之和(包括自身) 例如: 数组a[5]: 1 2 3 4 5 变成前缀和的形式: a[0]=a[0]; a[1]=a[0]+a[1]; a[2]=a[0]+a[1]+a[2]; a[3]=a[0]+a[1]...

qq_40659901的博客 148

【蓝桥杯】k倍区间

k倍区间 给定一个长度为 NNN 的数列,A1,A2,⋯ANA_1, A_2, \cdots A_NA1​,A2​,⋯AN​ ,如果其中一段连续的子序列 Ai,Ai+1,⋯AjA_i,A_i+1, \cdots A_jAi​,Ai​+1,⋯Aj​( i≤ji \leq ji≤j ) 之和是 KKK 的倍数,我们就称这个区间 [i,j][i, j][i,j] 是 KKK 倍区间。 你能求出数列中总共有多少个 KKK 倍区间吗? 输入描述 第一行包含两个整数 NNN 和 KKK( 1≤N,K≤1051 \leq

木又可可的博客 590
上一篇: 两种全排列枚举方式
下一篇: 错误票据-stringstream的使用
CodeSlogan
博客等级 码龄6年 4227粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeSlogan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值