蓝桥与力扣刷题(蓝桥 k倍区间)

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

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

输入描述

第一行包含两个整数 N 和 K( 1≤N,K≤105 )。

以下 N 行每行包含一个整数 AiAi​ ( 1≤Ai≤105 )

输出描述

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

输入输出样例

示例

输入

5 2
1
2
3
4
5

输出

6

解题思路+代码:(引用题解区 作者:风之理

解题思路

①前缀和:是每一个都是前面累加的(第一个是0+第一个) ②前缀和%K==》可以找到K=0,它一定是K的倍数 ③理解一个东西:任意两个前缀和的差值就是一个区间 ④而前缀和的差值为0,也一定是K的倍数 ⑤(3,3,3,3)---》任意两个组合:(n*(n-1)/2))

代码:

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc=new Scanner(System.in);long N= sc.nextInt();long K= sc.nextInt();long sum=0;long [] n1=new long[100010];long [] n2=new  long[(int) K];for (int i = 0; i < N; i++) {long s= sc.nextInt();n1[i+1]=n1[i]+s;n2[(int)(n1[i+1]%K)]++;}sum +=n2[0];for (int i = 0; i < K; i++) {sum+=(n2[i]-1)*n2[i]/2;}System.out.println(sum);sc.close();}}

 个人想了这题很久,但是提交代码只能通过两个用例:

总结: 个人认为这题还是有点难,ai之后发现高效的解法需要用到前缀和与哈希表来计算,大家也可参考大佬的解题思路~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

json介绍、python数据和json数据的相互转换

目录 一 json介绍 json是什么&#xff1f; 用处 Json 和 XML 对比 各语言对Json的支持情况 Json规范详解 二 python数据和json数据的相互转换 dumps() : 转换成json loads(): 转换成python数据 总结 一 json介绍 json是什么&#xff1f; 实质上是一条字符串 是一种…

PAT乙级真题 / 知识点(1)

引言&#xff1a; 起初&#xff0c;报PAT是伙伴推荐。但在报名路途中&#xff0c;有朋友说&#xff0c;花时间到这上面不值得&#xff0c;还有学长说没听过&#xff0c;野鸡杯。 我一笑而过&#xff0c;我可能就是偏执&#xff0c;我就是想报。随着刷真题&#xff0c;我的基础…

单细胞分析(20)——inferCNV分析

InferCNV分析笔记 1. 分析目标 InferCNV&#xff08;Inference of Copy Number Variations&#xff09;是一种基于单细胞转录组数据推断**拷贝数变异&#xff08;CNV&#xff09;**的方法&#xff0c;推测其基因组变异情况。 2. 数据准备 2.1 载入数据 library(Seurat) set…

C++:多态与虚函数

1.虚函数&#xff0c;在函数前加virtual即可。有虚函数时&#xff0c;父类指针指向父类对象时就会使用父类的成员&#xff0c;指向子类对象时就可以使用子类成员&#xff0c;进而我们引入了多态的概念。 2.多态&#xff1a;父类指针指向子类的对象&#xff0c;通过父类指针调用…

WSL下使用git克隆失败解决

WSL默认nat模式&#xff0c;别动了防火墙放行&#xff0c;见图1git导入[bash1]&#xff0c;ip为你wsl上linxu通过ifconfig获取的本机ip&#xff0c;端口对好某alcsh软件开启tun模式【经过测试&#xff0c;不开也行】应该成了&#xff0c;如果不行&#xff0c;修改.wslconfig为下…

开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享

OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本&#xff0c;分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内&#xff0c;2025年01月01日起&#xff0c;不支持新产品基于老分支&#xff08;OpenHar…

C++中explicit关键字的含义以及用法

在C中&#xff0c;explicit关键字用于修饰构造函数和转换运算符&#xff08;C11起&#xff09;&#xff0c;防止编译器进行隐式类型转换&#xff0c;要求必须显式调用构造函数或转换操作。以下是其核心用法和示例&#xff1a; 1. 修饰构造函数 用途 禁止隐式构造对象&#xf…

Oracle OCP认证考试考点详解083系列01

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 1. 第1题&#xff1a; 题目 解析及答案&#xff1a; 关于自动工作量存储库&#xff08;AWR&#xff09;快照&#xff0c;以下哪三个选项…

从DNS到TCP:DNS解析流程和浏览器输入域名访问流程

1 DNS 解析流程 1.1 什么是DNS域名解析 在生活中我们会经常遇到域名&#xff0c;比如说CSDN的域名www.csdn.net&#xff0c;百度的域名www.baidu.com,我们也会碰到IP&#xff0c;现在目前有的是IPV4&#xff0c;IPV6。那这两个有什么区别呢&#xff1f;IP地址是互联网上计算机…

《2025软件测试工程师面试》接口测试篇

基础概念 什么是接口测试? 接口测试是测试系统组件间接口的一种测试,主要用于检测外部系统和内部系统之间以及各个子系统之间的交互点。测试的重点是检查数据的交换、传递和控制管理的过程,以及系统间的相互逻辑依赖关系等。 接口测试的优势是什么? 接口测试具有规范性与扩…

【PHP脚本语言详解】为什么直接访问PHP文件会显示空白?从错误示例到正确执行!

前言 作为一名开发者&#xff0c;你是否曾经遇到过这样的问题&#xff1a;写了一个PHP脚本&#xff0c;放到服务器根目录后&#xff0c;直接通过file:///路径访问却显示空白页面&#xff1f;而换成http://localhost却能正常显示&#xff1f;这篇文章将带你深入理解PHP脚本语言…

word转换为pdf后图片失真解决办法、高质量PDF转换方法

1、安装Adobe Acrobat Pro DC 自行安装 2、配置Acrobat PDFMaker &#xff08;1&#xff09;点击word选项卡上的Acrobat插件&#xff0c;&#xff08;2&#xff09;点击“首选项”按钮&#xff0c;&#xff08;3&#xff09;点击“高级配置”按钮&#xff08;4&#xff09;点…

基于PyTorch的深度学习2——逐元素操作,归并,比较,矩阵

以下为部分逐元素操作代码实例。 import torcht torch.randn(1, 3) t1 torch.randn(3, 1) t2 torch.randn(1, 3)#t0.1*(t1/t2) torch.addcdiv(t, 0.1, t1, t2)#计算sigmoid torch.sigmoid(t)#将t限制在[0,1]之间 torch.clamp(t,0,1)#t2进行就地运算 t.add_(2) 归并操作一般…

线程池的工作流程

线程池的工作流程主要包括任务提交、线程分配、任务执行和线程回收等环节&#xff0c;以下是对其详细的描述&#xff1a; 任务提交 当有任务需要执行时&#xff0c;用户通过线程池提供的提交方法&#xff0c;如execute()或submit()方法&#xff0c;将任务&#xff08;通常是实现…

C++20 标准化有符号整数:迈向更可预测的整数运算

文章目录 一、背景&#xff1a;为什么需要标准化&#xff1f;二、2 的补码&#xff1a;原理与优势&#xff08;一&#xff09;2 的补码原理&#xff08;二&#xff09;2 的补码的优势 三、C20 的变化&#xff1a;明确 2 的补码四、如何利用这一特性优化代码&#xff08;一&…

Libgdx游戏开发系列教程(1)——环境配置及demo运行

目录 环境 JDK环境 项目创建 1.下载gdx-setup.jar文件 2.填写信息,创建项目 demo运行步骤 1.修改gradle.properties 2.安装Build-Tool 3.运行 Libgdx游戏是基于Java的一款游戏引擎,可以发布Android,桌面端,Html,IOS等游戏,出名的《杀戮尖塔》也是用了此引擎制作的 本…

【jenkins配置记录】

全局工具配置&#xff1a; D:\Program Files\Java\jdk1.8.0_281 D:\Program Files\Git\bin\git.exe E:\allure-2.13.2 2. GIT 3. 定时任务 H 8 * * 1-5 4. 构建触发器 5. 构建后操作 Allure Report 吐血记录&#xff1a;报告路径可以为 workspace 相对路径 6. 系统配置 em…

C++:内联函数

内联函数可以用来降低运行时间&#xff0c;当内联函数收到编译器的指示时&#xff0c;即可发生内联&#xff1a;编译器会使用函数的定义体来替代函数调用语句&#xff0c;此行为发生在编译阶段。 定义内联函数涉及的关键字为inline&#xff0c;例如&#xff1a; inline void …

Linux网络相关概念和重要知识(1)(网络协议、网络通信)

目录 1.网络协议 &#xff08;1&#xff09;网络的起源 &#xff08;2&#xff09;为什么需要协议 &#xff08;3&#xff09;协议分层及其设计的解耦 &#xff08;4&#xff09;OSI定义的七层网络模型 ①分层及其功能 ②TCP/IP协议 ③传输层协议&#xff08;TCP和UDP&a…

【入门Web安全之前端学习的侧重点和针对性的建议】

入门Web安全之前端学习的侧重点和针对性的建议 一、HTML&#xff1a;理解攻击载荷的载体二、CSS&#xff1a;次要但需警惕点击劫持三、JavaScript&#xff1a;渗透测试的核心重点四、浏览器工具&#xff1a;渗透测试的实战武器五、学习建议与资源六、总结&#xff1a;渗透测试者…