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

算法题(126):前缀和

审题:

本题需要我们将题目给出的数组的数据的[l,r]范围内的数据和打印

思路:
方法一:前缀和

前缀和的思想就是预处理数据,通过空间换时间的方式提高代码效率

第一步:利用数组f将前缀和记录下来,f[i]表示索引1到索引i的和

第二步:计算区间之和:f[r]-f[l-1].本质上是将他们两个除了索引为l位置之外的公共部分去除

第三步:输出答案

解题:
 

#include<iostream>
using namespace std;
int n,q;
const int N = 1e5+10;
long long  v[N];//记录数据
long long  f[N];//前缀和数组
int l,r;
int main()
{cin >> n >> q;for(int i = 1; i <= n; i++){cin >> v[i];//前缀和预处理f[i] = f[i-1]+v[i];}while(q--){cin >> l >> r;cout << f[r]-f[l-1] << endl;}return 0;
}

1.由于本题的数据值范围是1e9,所以我们使用long long类型的数组存储数据

2.我们可以直接在数据输入的时候进行预处理,减少遍历次数。且这里不用对i==1的情况特殊处理,因为f定义在全局域,所以会自动初始化为0,f[1] = f[0]+v[1]:这里的f[0]就是0,所以没什么问题。

【模板】前缀和

相关文章:

  • 【Netty篇】EventLoopGroup 与 EventLoop 详解
  • SAP ECCS 标准报表 切换为EXCEL电子表格模式
  • 基于springboot+vue的数码产品抢购系统
  • 0701表单组件-react-仿低代码平台项目
  • Abstract (抽象类)和 Interface (接口)的区别
  • PowerBi中Drillthrough功能怎么使用?
  • 多功能门禁系统的设计
  • Vue+Threejs项目性能优化
  • Linux驱动开发进阶(十)- I2C子系统BSP驱动
  • 请详细说明下面训练阶段的差别: Supervised Fine-Tuning、Reward Modeling、PPO、DPO、KTO、Pre-Training
  • 【MySQL】索引特性
  • OpenCV 图形API(37)图像滤波-----分离过滤器函数sepFilter()
  • SvelteKit 最新中文文档教程(20)—— 最佳实践之性能
  • 系统架构设计师:系统架构概述案例分析与简答题、详细解析与评分要点
  • 【Caddy】:现代化、自动 HTTPS 的 Web 服务器新星
  • 基础(测试用例:介绍,测试用例格式,案例)
  • 并发编程之可见性、原子性、有序性问题
  • npm install 版本过高引发错误,请添加 --legacy-peer-deps
  • 使用nvm install XXX 下载node版本时网络不好导致npm下载失败解决方案
  • 智能麻将出牌组件
  • 网站诊断及优化方案/互联网怎么赚钱
  • 平台网站如何做推广方案设计/百度sem竞价
  • 自己制作微信小程序/长沙网站seo收费标准
  • 兴化网站建设/成都网站优化
  • 邢台做移动网站公司/seo实战培训王乃用
  • 网站开发公司不干了/网站运营怎么做