【ybt高效进阶4-2-1】单点修改区间查询
查询 修改 高效 进阶 区间 单点 ybt
2023-09-27 14:28:29 时间
单点修改区间查询
题目链接:ybt高效进阶4-2-1
题目大意
模板题。
给一个序列,维护给一个数加一个值和求区间和的操作。
思路
就是一道普通的树状数组,没什么好说的。
区间和可以用前缀和的方式来实现。
代码
#include<cstdio>
#define ll long long
using namespace std;
ll tree[1000001];
int n, q, op, x, y;
void add(int x, ll y) {
for (int i = x; i <= n; i += i & (-i))
tree[i] += y;
}
ll ask(int x) {
ll re = 0;
for (int i = x; i; i -= i & (-i))
re += tree[i];
return re;
}
ll get_ans(int l, int r) {
return ask(r) - ask(l - 1);
}
int main() {
scanf("%d %d", &n, &q);
for (int i = 1; i <= n; i++) {
scanf("%d", &x);
add(i, 1ll * x);
}
for (int i = 1; i <= q; i++) {
scanf("%d %d %d", &op, &x, &y);
if (op == 1) add(x, 1ll * y);
else printf("%lld\n", get_ans(x, y));
}
return 0;
}
相关文章
- 大数据-数仓-数仓工具:Hive(离线数据分析框架)【替代MapReduce编程;插入、查询、分析HDFS中的大规模数据;机制是将HiveSQL转化成MR程序;不支持修改、删除操作;执行延迟较高】
- 《 Oracle查询优化改写 技巧与案例 》电子工业出版社
- 数据分析-day04-pandas-dataFrame中查询数据与修改赋值修改语句(r=df[df["z"]==6] & df["z"]=6)
- 31.Django大型电商项目之加入购物车——Django的增加、删除、修改、查询实操
- 如何用Redis缓存改善数据库查询性能?
- Prometheus监控学习笔记之PromQL聚合查询
- ASP.NET 4.x Web Api Odata v4 backend modify query 修改查询
- Thinkphp或查询使用
- mysql hibernate 查询ip地址在mysql的网段
- mysql查询某个字段并修改
- [jnhs]id字段修改错误导致hibernate hql查询整表只返回第一条数据
- 关于mybatis中llike模糊查询中#和$的使用
- 在线安全清空慢查询日志slowlog
- 用了这么久的PageHelper,你知道原生的分页查询原理和步骤吗
- JDBC连接SQL Server2008 完成增加、删除、查询、修改等基本信息基本格式及示例代码
- 每秒查询率(QPS)与吞吐量(TPS)
- QueryStorms(查询风暴)是擅长的一个插件
- 3292. 称检测点查询
- mysql数据库——连接查询(内连接:自然连接,等值连接。外连接:左连接,右连接,全连接)
- 浅谈树状数组 区间修改 区间查询
- 【ybt高效进阶4-2-6】【luogu P4514】区间修改区间查询 / 上帝造题的七分钟
- postgresql闪回查询及其问题
- SQL 多表联合查询的几种方式
- 【mysql】mysql查询ddl频次