当前位置: 首页 > 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整除。

相关文章:

  • VoIP之音频3A技术
  • Lecture 2 - Python
  • 【前端】【功能函数】eachTree,封装一个通用的遍历树结构的模板
  • Java 大视界 -- 深入剖析 Java 大数据实时 ETL 中的数据质量保障策略(97)
  • GMII(Gigabit Media Independent Interface)详解
  • 登录-10.Filter-登录校验过滤器
  • Docker 2025/2/24
  • 互联网上门洗衣洗鞋小程序
  • Python+Flutter前后端分离开发跨平台待办事项APP实战
  • 微信小程序:完善购物车功能,购物车主页面展示,详细页面展示效果
  • R 语言科研绘图 --- 柱状图-汇总
  • CSS编程基础学习
  • 每日一题——顺时针旋转矩阵
  • 基于 GEE 计算并下载研究区年均叶面积指数 LAI 和光合有效辐射分量 FPAR
  • 量子计算在金融风险评估中的应用:革新与突破
  • dify本地部署
  • Python--函数高级(上)
  • tauri输入js脚本的方法和注意事项initialization_script
  • 什么是MySql的主从复制(主从同步)?
  • 开源模型应用落地-DeepSeek-R1-Distill-Qwen-7B-Docker助力-模型部署 “光速” 指南
  • 郑州富士康招聘/seo的工具有哪些
  • 网络推广培训推荐/百度热搜关键词排名优化
  • 网站排名怎样做有效/外链网盘网站
  • 个人建设网站流程/百度优化seo
  • 网站建站代码/电商关键词工具
  • 百度收录的网站标题 --/哈尔滨电话本黄页