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

信息学奥赛一本通 1535:【例 1】数列操作

【题目链接】

ybt 1535:【例 1】数列操作

【题目考点】

1. 树状数组

【解题思路】

本题为树状数组模板题,维护区间和,进行单点修改,区间查询。
详细讲解见:洛谷 P3374 【模板】树状数组 1(树状数组解法)

【题解代码】

#include <bits/stdc++.h>
using namespace std;
#define N 100005
int tree[N], n, m;//tree:树状数组 
int lowbit(int x)
{return x & -x;
}
void update(int i, int v)//a[i] += v 单点修改 
{for(int x = i; x <= n; x += lowbit(x))tree[x] += v;
}
int sum(int i)//求a[1]+...+a[i] 区间查询 
{int s = 0;for(int x = i; x > 0; x -= lowbit(x))s += tree[x];return s;
}
int query(int l, int r)//求a序列区间和[l, r] 
{return sum(r)-sum(l-1);
}
int main()
{ios::sync_with_stdio(false);cin.tie(nullptr);int a, k, b;cin >> n >> m;for(int i = 1; i <= n; ++i){cin >> a;update(i, a);}for(int i = 1; i <= m; ++i){cin >> k >> a >> b;if(k == 0)cout << query(a, b) << '\n';elseupdate(a, b);}return 0;
}
http://www.xdnf.cn/news/5835.html

相关文章:

  • 新一代动态可重构处理器技术,用于加速嵌入式 AI 应用
  • WSL 安装 Debian 12 后,Linux 如何安装 vim ?
  • OpenVLA (2) 机器人环境和环境数据
  • 【UAP】《Empirical Upper Bound in Object Detection and More》
  • 【HTML5】【AJAX的几种封装方法详解】
  • 【deekseek】TCP Offload Engine
  • LeetCode 648 单词替换题解
  • Baklib智能云平台加速企业数据治理
  • 桑德拉精神与开源链动2+1模式AI智能名片S2B2C商城小程序的协同价值研究
  • 01.类型转换+Scanner+制表符嫦娥例题
  • dockers笔记
  • FastDDS Transport功能模块初步整理
  • 《医院网络安全运营能力成熟度评估指南》(试行版)研究解读
  • Spring Boot 的自动配置为 Spring MVC 做了哪些事情?
  • matlab多智能体网络一致性研究
  • 【C++详解】类和对象(上)类的定义、实例化、this指针
  • C++11 ——右值引用和移动语义
  • 手动硬密封固定式对夹V型球阀:复杂介质工况下的高性价比流体控制方案-耀圣
  • 深度学习基础
  • Kotlin-类和对象
  • Angular | 利用 `ChangeDetectorRef` 解决 Angular 动态显示输入框的聚焦问题
  • Java后端开发day48--反射动态代理
  • 【速写】TRL:Trainer的细节与思考(PPO/DPO+LoRA可行性)
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】金融风控分析案例-10.4 模型部署与定期评估
  • 虹科技术 | 简化汽车零部件测试:LIN/CAN总线设备的按键触发功能实现
  • C/C++内存管理
  • const char* 指向字符串数组和字符串的区别
  • css3基于伸缩盒模型生成一个小案例
  • 华三路由器单臂路由配置
  • 数字IC后端培训教程之数字后端项目典型案例分析