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

《数组》学习——区间和

题目

给定一个整数数组 Array,请计算该数组在每个指定区间内元素的总和。

输入描述:

第一行输入为整数数组 Array 的长度 n,接下来 n 行,每行一个整数,表示数组的元素。随后的输入为需要计算总和的区间,直至文件结束。

输出描述:

输出每个指定区间内元素的总和。

测试用例

输入示例

5
1
2
3
4
5
0 1
1 3

输出示例

3
9

前缀和,其思想是重复利用计算过的子数组之和,从而降低区间查询需要累加计算的次数。

测试程序:

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	int n, a, b;
	std::cout << "输入整数数组的长度:" << std::endl;
	std::cin >> n;

	vector<int> vec(n);
	vector<int> p(n);

	int presum = 0;

	std::cout << "输入整数数组的元素:" << std::endl;
	for (int i = 0; i < n; i++)
	{
		std::cin >> vec[i];
		presum += vec[i];
		p[i] = presum;
	}

	std::cout << "输入需要计算总和的区间:" << std::endl;
	while (std::cin >> a>>b)
	{
		int sum;
		if (a == 0) sum = p[b];
		else sum = p[b] - p[a - 1];
		std::cout << sum << std::endl;
	}

	std::cin.get();
}

相关文章:

  • 修改MySQL密码
  • 【大模型系列篇】DeepSeek-R1如何通过强化学习有效提升大型语言模型的推理能力?
  • #渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞
  • Linux自学day23-进程和线程
  • 【Java】代理模式
  • 激光工控机在自动化生产线中有什么关键作用?
  • Java 中创建线程的几种方式
  • [数据结构] Map的使用与注意事项
  • element-plus树形数据与懒加载的实现
  • kettle从入门到精通 第九十二课 ETL之kettle 使用Kettle的Carte对外发布读写接口
  • 设计模式教程:命令模式(Command Pattern)
  • .NET版PDF处理控件Aspose.PDF教程:在 C# 中将 TIFF 文件转换为 PDF
  • hive迁移补数脚本细粒度 表名-分区唯一键
  • C语言基础系列【15】union 共用体
  • Apache Doris 实现毫秒级查询响应
  • 【RabbitMQ业务幂等设计】RabbitMQ消息是幂等的吗?
  • Ubuntu安装PostgreSQL
  • 城市地质安全专题连载⑦ | 加强国土空间规划管控,规避城市地质安全风险
  • 跟着李沐老师学习深度学习(十二)
  • javaSE学习笔记21-线程(thread)-锁(synchronized 与Lock)
  • 二手网站建设/微信营销的模式有哪些
  • 个人备案的网站可以做宣传/宁波seo关键词
  • wordpress搭建购物网站/站长之家ip查询
  • 做旅游网站需要的背景/推广赚钱
  • 天津市工程建设公众信息网官网/武汉seo网站推广培训
  • 网站正能量晚上不用下载直接进入/企业网站设计规范