蓝桥 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)
输出
输出一个整数,代表K倍区间的数目。
样例输入
5 2
1
2
3
4
5
样例输出
6

用sum[i]表示[1,i]的区间和,那么对于一个区间[l,r], 可以用sum[r]-sum[l-1]来表示。
要求区间和整除k的,需要(sum[r]-sum[l-1])%k==0 ---》sum[r]%k=sum[l-1]%k.
也就是当处理到i时,要看前面有多少个%k相同的,也就是到当前位置为结尾的区间和为k整数倍的个数。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;

int a[100005];
int cnt[100005];
int sum[100005];
int main(){
   
    int n, k;
    cin>>n>>k;
    ll res=0; 
    for (int i=1; i<=n; i++){
   
        scanf("%d", &a[i]);
        sum[i]=(sum[i-1]+a[i])%k;    //[1,i]和对k求余结果 
        res+=cnt[sum[i]];//前面有几个相同的余数结果,到这里就有几个k倍 
        cnt[sum[i]]++;    //[1,i]和%k的个数 
    }
    cout<<res+cnt[0];    //单独的一个k整数倍也可以 
    return 0;
}
AI 代码解读
目录
打赏
0
0
0
0
0
分享
相关文章
【YOLO系列】YOLOv8算法(尖端SOTA模型)
Ultralytics YOLOv8 是由 Ultralytics开发的一个前沿 SOTA 模型。它在以前 YOLO 版本的成功基础上,引入了新的功能和改进,进一步提升了性能和灵活性。YOLOv8 基于快速、准确和易于使用的理念设计,使其成为广泛的物体检测、图像分割和图像分类任务的绝佳选择。
3246 0
【YOLO系列】YOLOv8算法(尖端SOTA模型)
图文详解 DFS 和 BFS | 算法必看系列知识二十四
深度优先遍历(Depth First Search, 简称 DFS) 与广度优先遍历(Breath First Search)是图论中两种非常重要的算法,生产上广泛用于拓扑排序,寻路(走迷宫),搜索引擎,爬虫等,也频繁出现在高频面试题中。
35097 6
图文详解 DFS 和 BFS | 算法必看系列知识二十四
优化Go语言中的网络连接:设置代理超时参数
优化Go语言中的网络连接:设置代理超时参数
基于 PAI-ArtLab 使用 ComfyUI 生成产品效果图
本文介绍了通过PAI ArtLab平台生成电商背景图的实验。用户可上传汽车、家电、化妆品等产品图片,快速生成背景并提升画质,实现降本增效。具体步骤包括登录阿里云完成实名认证,访问PAI ArtLab平台领取免费试用资源,使用ComfyUI加载工作流并上传图片,调整参数生成结果。此外,还提供了 Flux重绘和ControlNet微调等高级功能,以及常见问题解答,帮助用户更好地操作与优化图片效果。
|
8月前
|
SQL
UNIQUE
【11月更文挑战第14天】
280 6
图书馆信息管理系统(项目需求和计划、项目设计)(上)
图书馆信息管理系统(项目需求和计划、项目设计)(上)
452 1
带你读《阿里云安全白皮书》(二十)——云上安全重要支柱(14)
本文介绍了阿里云在企业多账号管理和身份权限管理方面的解决方案。针对中大型企业面临的账号管理复杂性和安全合规挑战,阿里云提供了资源目录(Resource Directory)和Control Policy等工具,实现账号的有序管理和权限的精细控制。此外,阿里云还支持企业内部身份与云上身份的关联与映射,通过单点登录(SSO)简化身份管理,降低安全风险。这些措施有助于企业在云上实现高效、安全的资源管理。
智慧楼宇多目标调度问题【数学规划的应用(含代码)】阿里达摩院MindOpt
本文探讨了使用MindOpt工具优化智慧楼宇的多目标调度问题,特别是在虚拟电厂场景下的应用。智慧楼宇通过智能化技术综合考虑能耗、舒适度等多目标,实现楼宇设备的有效管理和调度。虚拟电厂作为多能源聚合体,能够参与电力市场,提供调峰、调频等辅助服务。文章介绍了如何使用MindOpt云上建模求解平台及MindOpt APL建模语言对楼宇多目标调度问题进行数学建模和求解,旨在通过优化储能设备的充放电操作来最小化用电成本、碳排放成本和功率变化成本,从而实现经济、环保和电网稳定的综合目标。最终结果显示,在使用储能设备的情况下,相比不使用储能设备的情形,成本节约达到了约48%。
报名开启!开源上云,寻找云上创造者
阿里云与 Gitee 联合发起“开源上云,寻找云上创造者”活动,旨在帮助 Gitee 上开源创造者及其优秀开源项目拓展至阿里云,让更多开发者能够受益于优秀开源项目的创新成果,共同推动开源技术的发展。
663 13

计算巢

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等