当前位置: 首页 > news >正文

【蓝桥杯】1.k倍区间

在这里插入图片描述

前缀和

#include <iostream>
using namespace std;
const int N=100010;
long long a[N];
int cnt[N];
int main(){int n, m;cnt[0] = 1;cin >> n >> m;long long res = 0;for(int i = 1; i <= n; i++){scanf("%d", &a[i]);a[i] += a[i-1];res += cnt[a[i] % m];cnt[a[i] % m]++;}cout << res << endl;return 0;
}

这道题我们可以使用前缀和,我们定义一个数组a用来储存前缀和,数组cnt来储存相同余数的前缀和的个数。有人可能会不清楚cnt的作用,我们可以想想当i < j的时候,a[i]和a[j]如果除以m后余数相同,是不是可以说明从i+1到j这一段区间除以m是整除的?然后知道了这个原理,我们每次遍历的时候知道了前缀和a[j]是多少,那么我们就只需要找到有多少个a[i]除以m的余数和a[j]除以m的余数相同,然后统计到res中。然后在最后再将自身加到cnt[a[i] % m]中。

还有一点需要注意,cnt[0]需要初始化为1,这是因为如果余数为0,那么就说明a[j]自身可以被m整除。

http://www.lryc.cn/news/543907.html

相关文章:

  • Qt互斥锁(QMutex)的使用、QMutexLocker的使用
  • 具身智能(Embodied AI)的物理交互基准测试:构建真实世界的智能体评估体系
  • Javaweb后端数据库多表关系一对多,外键,一对一
  • 鸿蒙 ArkUI 实现敲木鱼小游戏
  • cv2.solvePnP 报错 求相机位姿
  • Linux实操——在服务器上直接从百度网盘下载(/上传)文件
  • 2004-2024年光刻机系统及性能研究领域国内外发展历史、差距、研究难点热点、进展突破及下一个十年研究热点方向2025.2.27
  • 请求Geoserver的WTMS服务返回200不返回图片问题-跨域导致
  • ubuntu配置jmeter
  • 《Qt动画编程实战:轻松实现头像旋转效果》
  • 【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】
  • DeepSeek开源技术全景解析:从硬件榨取到AI民主化革命
  • WPF12-MVVM
  • 一个原教旨的多路径 TCP
  • 跟着AI学vue第十三章
  • labview中VISA串口出现异常的解决方案
  • StableDiffusion本地部署 2
  • unity学习61:UI布局layout
  • BRD4缺失通过GRP78灭活内质网应激,延缓脱氢表雄酮诱导的卵巢颗粒细胞凋亡
  • Jmeter插件下载及安装
  • 【Swift 算法实战】判断数组中是否存在重复元素
  • Spock框架:让单元测试更优雅的高效武器
  • 【前端基础】Day 4 CSS盒子模型
  • 补题蓝桥杯14届JavaB组第4题
  • kotlin的函数标准库使用
  • Visual Studio Code 跨平台安装与配置指南(附官方下载链接)
  • STM32学习【4】ARM汇编(够用)
  • Linux驱动开发实战(一):LED控制驱动详解
  • windows下安装pyenv+virtualenv+virtualenvwrapper
  • Cherno 游戏引擎笔记(91~111)