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

前缀和的例题

lanqiao OJ 97

题目描述

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

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

输入描述

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

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

输出描述

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

输入输出样例

示例

输入

5 2
1
2
3
4
5

输出

6
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e5+5;
ll a[N];
ll ans[N];
int n,k;
int main(){
  cin>>n>>k;
  for(int i=1;i<=n;i++){
    cin>>a[i];
  }
  for(int i=1;i<=n;i++){
    a[i]+=a[i-1];
  }
  for(int i=1;i<=n;i++){
    ans[a[i]%k]++;
  }
  ll sum=ans[0];
  for(int i=0;i<k;i++){
    sum+=(ans[i]*(ans[i]-1))/2;
  }

  cout<<sum;


  return 0 ;
}

 

相关文章:

  • 麒麟系统使用-安装 SQL Developer
  • 【MIMIC数据库教程】十二、使用Python提取所有患者的高密度脂蛋白(HDL)指标
  • 【C++】 —— 笔试刷题day_6
  • [网络] socket编程--udp_echo_server
  • 深度解析前端面试八股文:核心知识点与高效应对策略
  • BigEvent项目后端学习笔记(一)用户管理模块 | 注册登录与用户信息全流程解析(含优化)
  • docker入门篇
  • 【极光 Orbit·STC8x】05. GPIO库函数驱动LED流动
  • 牛客周赛84 题解 Java ABCDEFG AK实录
  • Tauri + Vite + SvelteKit + TailwindCSS + DaisyUI 跨平台开发详细配置指南(Windows)
  • langchain4j对接阿里云百炼平台
  • Java 学习记录:基础到进阶之路(二)
  • 解锁MySQL 8.0.41源码调试:Mac 11.6+CLion 2024.3.4实战指南
  • 63. Three.js案例-不同材质属性来增强3D对象的真实感
  • [c语言日寄]浮点数的排序
  • 鸿蒙next 多行文字加图片后缀实现方案
  • goweb中文件上传和文件下载
  • [特殊字符] 深度实战:Android 13 系统定制之 Recovery 模式瘦身指南
  • 【Agent】OpenManus-Flow组件详细分析
  • PTA 7-12 排序
  • 长春网站建设论坛/互联网营销师怎么报名
  • 网站建设的资源整合与系统设计/万网域名管理入口
  • 今日头条网站模板/引流推广营销
  • 给人做网站赚钱/中国关键词网站
  • 网站开发架设/外贸平台推广
  • 电信改公网ip可以做网站吗/qq群引流推广平台免费