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

题解:AtCoder AT_awc0004_e Sum of Intervals

本文分享的必刷题目是从蓝桥云课洛谷AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。

欢迎大家订阅我的专栏:算法题解:C++与Python实现!

附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总


【题目来源】

AtCoder:E - Sum of Intervals

【题目描述】

Takahashi has a sequence ofN NNintegersA = ( A 1 , A 2 , … , A N ) A = (A_1, A_2, \ldots, A_N)A=(A1,A2,,AN). Each elementA i A_iAimay take a negative value.
高桥有一个包含N NN个整数的序列A = ( A 1 , A 2 , … , A N ) A = (A_1, A_2, …, A_N)A=(A1,A2,,AN)。每个元素A i A_iAi可能取负值。

Takahashi wants to select acontiguous subarrayfrom this sequence such that the sum of its elements is exactly equal to the integerK KK, whereK KKis the target sum value. Find the number of ways to choose such a subarray.
高桥希望从该序列中选择一个连续子数组,使得其元素之和恰好等于整数K KK(其中K KK是目标和值)。求选择这样的子数组的方式数量。

More precisely, find the number of pairs of integers( l , r ) (l, r)(l,r)satisfying1 ≤ l ≤ r ≤ N 1 \leq l \leq r \leq N1lrNsuch that
更精确地说,求满足1 ≤ l ≤ r ≤ N 1 ≤ l ≤ r ≤ N1lrN且满足以下条件的整数对( l , r ) (l, r)(l,r)的数量:

A l + A l + 1 + ⋯ + A r = K A_l + A_{l+1} + \cdots + A_r = KAl+Al+1++Ar=K

【输入】

N NNK KK
A 1 A_1A1A 2 A_2A2⋯ \cdotsA N A_NAN

  • The first line contains the integerN NNrepresenting the number of elements in the sequence and the integerK KKrepresenting the target sum value, separated by a space.
  • The second line contains the integersA 1 , A 2 , … , A N A_1, A_2, \ldots, A_NA1,A2,,ANrepresenting each element of the sequence, separated by spaces.

【输出】

Print the number of pairs of integers( l , r ) (l, r)(l,r)that satisfy the condition, on a single line.

【输入样例】

5 5 1 2 3 4 5

【输出样例】

2

【解题思路】

【算法标签】

#前缀和#

【代码详解】

#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=200005;intn,k;// n: 数组长度,k: 目标和inta[N],sa[N],ans;// a: 原始数组,sa: 前缀和数组,ans: 计数结果map<int,int>mp;// 用于存储前缀和出现的次数signedmain(){cin>>n>>k;// 读入数组长度和目标和mp[0]=1;// 初始化:前缀和为0出现1次(空子数组)for(inti=1;i<=n;i++){cin>>a[i];// 读入数组元素sa[i]=sa[i-1]+a[i];// 计算前缀和// 如果存在前缀和为sa[i]-k,则说明找到了和为k的子数组ans+=mp[sa[i]-k];// 将当前前缀和加入mapmp[sa[i]]++;}cout<<ans<<endl;// 输出和为k的子数组个数return0;}

【运行结果】

5 5 1 2 3 4 5 2
http://www.jsqmd.com/news/716568/

相关文章:

  • 从开发到部署:用Docker Compose封装你的MySQL+phpMyAdmin本地开发环境(附完整yml文件)
  • Oumuamua-7b-RP实操手册:对话历史导出为Markdown+图片嵌入生成可分享RP故事集
  • 保姆级教程:用PyTorch复现ArcFace人脸识别,从数据加载到模型训练全流程解析
  • 【温度】基于matlab NSGA-II与BP神经网络的应变片式压力传感器温度补偿研究【含Matlab源码 15396期】
  • Dev Containers + Kubernetes本地沙箱联动失效?2026年3大厂商联合认证的5步跨集群同步协议(含YAML原子模板)
  • 3步完成:如何在Chrome浏览器中快速转换网页图片格式
  • 如何在MZmine3中高效处理DIA数据?5个关键问题与解决方案解析
  • 2026年深度解析与推荐:云智科技创始人的战略视野与行业重塑力 - 品牌推荐
  • 2026年权威解析与推荐:云智科技创始人的战略视野与行业重塑路径 - 品牌推荐
  • DeepSeek-V4 昇腾首发全解析:基于CANN的训推优化实践,国产万亿参数模型的自主可控之路
  • Pi0镜像快速上手:3步启动Web界面,小白也能轻松操控机器人
  • 2.2 工人为什么不用系统?不是不会,是不敢
  • Win10BloatRemover:让你的Windows 10重获极速与隐私
  • 暗黑破坏神2存档编辑器:轻松打造完美角色体验
  • 2026 前瞻:云智科技创始人的战略格局与产业重塑之路 - 品牌推荐
  • 2025-2026年国内知识产权公司推荐:五大口碑服务评测对比顶尖企业专利无效应对 - 品牌推荐
  • 2026年4月温州校服采购指南:实力服务商深度解析 - 2026年企业推荐榜
  • C++ 网络编程 总结
  • 若依RuoYi-Vue-Plus×95coder:一句话生成客户管理全链路,AI重构后台开发范式
  • Win11Debloat终极指南:三步解决Windows臃肿问题,让你的电脑重获新生
  • 2026年现阶段:成都几字型钢采购如何考察厂商综合实力? - 2026年企业推荐榜
  • 备战蓝桥杯国赛【day2】
  • 手把手教你:基于Intel Agilex 5 E系列FPGA搭建一个边缘AI推理原型(含资源评估)
  • 2026年现阶段武汉休学辍学干预机构深度解析:为何纽特心理成为专业之选? - 2026年企业推荐榜
  • Stable Diffusion加速神器:用DDIM采样算法,让你的AI绘画速度提升10倍(附PyTorch代码)
  • 别再瞎调RAG了!用Ragas框架给你的AI应用做个‘体检’,实测效果提升30%
  • BackupPC数据恢复实战:误删服务器/demo目录后,我是如何用3种恢复方式找回文件的
  • 哪家25-30万家用SUV车型专业?2026年4月推荐评测口碑对比五款产品顶尖亲子出行舒适性差 - 品牌推荐
  • 5步掌握专业缠论分析:ChanlunX通达信插件终极指南
  • 【飞机】飞机的固有频率和模态形状Matlab仿真