简单线段树

news/2025/10/31 18:03:57/文章来源:https://www.cnblogs.com/jdashuai-wagc/p/19180893
#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
using ll  = long long;
const int N = 50010;
int T;
struct node {int l, r;ll sum, add;
} tr[N * 4];
ll a[N];
inline int ls(int p) {return p << 1;}
inline int rs(int p) {return p << 1 | 1;}
void pushup(int u) {tr[u].sum = tr[ls(u)].sum + tr[rs(u)].sum;
}
void pushdown(int u) {auto &left = tr[ls(u)], &right = tr[rs(u)], &root = tr[u];if (root.add) {left.add += root.add; left.sum += (ll)(left.r - left.l + 1) * root.add;right.add += root.add; right.sum += (ll)(right.r - right.l + 1) * root.add;root.add = 0;}
}void build(int u, int l, int r) {if (l == r) tr[u] = {l, r, a[l], 0}; //(ll)?else {tr[u] = {l, r};int mid = l + r >> 1;build(ls(u), l, mid);build(rs(u), mid + 1, r);pushup(u);}
}void modi(int u, int l, int r, int v) {if (l <= tr[u].l && r >= tr[u].r) {tr[u].sum += (ll)(tr[u].r - tr[u].l + 1) * v;tr[u].add += v;} else {pushdown(u);int mid = tr[u].l + tr[u].r >> 1;if (l <= mid) modi(ls(u), l, r, v);if (r > mid) modi(rs(u), l, r, v);pushup(u);}
}ll query(int u, int l, int r) {if (l <= tr[u].l && r >= tr[u].r) return tr[u].sum;pushdown(u);ll v = 0;int mid = tr[u].l + tr[u].r >> 1;if (l <= mid) v = query(ls(u), l, r);if (r > mid) v += query(rs(u), l, r);return v;
}
int main() {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);cin >> T;for (int cs = 1; cs <= T; cs ++) {memset(a, 0, sizeof(a));memset(tr, 0, sizeof(tr));int n;cin >> n;for (int i = 1; i <= n; i ++) cin >> a[i];build(1, 1, n);string op;cout << "Case " << cs << ":\n";while (cin >> op && op != "End") {if (op == "Add"){ll x, y;cin >> x >> y;modi(1, x, x, y);} else if (op == "Sub") {ll x, y;cin >> x >> y;modi(1, x, x, -y);} else if (op == "Query") {int x, y;cin >> x >> y;cout << query(1, x, y) << '\n';}} }return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/952083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vn.py 的日志问题 回测策略的日志处理

vn.py 的日志问题 回测策略的日志处理在回测时,如果不用ui, 测试策略。 范例是直接使用: engine = BacktestingEngine()engine.set_parameters(**test_setting)engine.add_strategy(strategy, strategy_setting)eng…

Python文件操作(下)_ 会写文件,程序便有了记忆

Python文件操作(下)_ 会写文件,程序便有了记忆1

Python文件操作(上)_ 会读文件,程序便有了眼睛

Python文件操作(上)_ 会读文件,程序便有了眼睛#方法一:读取文件f = open("./_math.py", "r", encoding="utf-8")content = f.readlines()for line in content: print(line)f.clo…

KeyShot许可管理监控工具使用指南

在团队或企业中,随着3D渲染需求的增长,对KeyShot许可证的有效管理变得至关重要。为了帮助您更好地掌握KeyShot许可管理的监控工具,本文将提供一份详尽的使用指南,确保您能够轻松实现许可证使用的透明化。 一、了解…

精益装配,智造未来:哲讯科技SAP解决方案赋能装配制造企业数字化转型

精益装配,智造未来:哲讯科技SAP解决方案赋能装配制造企业数字化转型在全球化竞争与个性化需求日益凸显的今天,装配制造企业正站在转型升级的十字路口。从简单的零件组装到复杂的系统集成,从大批量标准化生产到多品…

2025 年工业陶瓷源头厂家最新推荐榜:聚焦技术与服务优选,助力企业精准采购优质工业陶瓷产品工业陶瓷/工业陶瓷管公司推荐

引言 当前工业陶瓷市场需求旺盛,却面临产品质量参差不齐、核心技术缺失、供应链不稳定及环保合规难等问题,严重影响企业采购效率与生产稳定性。为帮助各行业企业精准筛选可靠的工业陶瓷源头厂家,避开采购陷阱,降低…

2025 年氧化铝陶瓷源头厂家最新推荐排行榜:聚焦六大优质企业,助力下游企业精准选合作方氧化铝陶瓷管/氧化铝陶瓷棒/氧化铝陶瓷片公司推荐

引言 当前锂电、半导体、新能源等行业对高品质氧化铝陶瓷需求激增,市场厂家数量虽多,但存在部分厂家无核心技术、非源头生产致成本高、质量管控漏洞多等问题,下游企业常因信息不对称难选靠谱合作方。为破解此困境,…

revit api视图

revit api视图获取视图类型 //Autodesk.Revit.DB.View view = GetView(); //两种判断视图类型的方法: //第一种: ViewType viewType = view.ViewType; switch (viewType) {case Autodesk.Revit.DB.ViewType.ThreeD:/…

Oracle ADG 日常巡检指南

Oracle ADG 日常巡检指南一、基础状态检查数据库角色与模式 SELECT db_unique_name, open_mode, database_role, switchover_status FROM v$database;预期状态:主库:OPEN_MODE=READ WRITE, DATABASE_ROLE=PRIMARY 备…

Ansys Electro-Thermal Analysis

Ansys Electro-Thermal Analysis2025-10-31 17:51 斑鸠,一生。 阅读(0) 评论(0) 收藏 举报

Oracle AWR 报告指标全解析:深入理解数据库性能优化的关键

Oracle AWR 报告指标全解析:深入理解数据库性能优化的关键一、引言 在 Oracle 数据库管理与性能优化领域,AWR(Automatic Workload Repository)报告扮演着极为重要的角色。它犹如一位精准的诊断专家,能够对数据库的…

Oracle 数据库 dblink 使用全解析

Oracle 数据库 dblink 使用全解析一、引言 在企业级数据库应用场景中,常常需要在不同的 Oracle 数据库实例之间进行数据交互与共享。Oracle 的数据库链接(dblink)功能为此提供了便捷的解决方案,它允许用户如同访问…

一个白噪声+滤波器demo

一个白噪声+滤波器demoimport("stdfaust.lib"); ctFreq = hslider("[0]cutoffFrequency",500,50,10000,0.01) : si.smoo; q = hslider("[1]q",5,1,30,0.1) : si.smoo; gain = hslider(&…

Oracle数据库七种闪回技术详解与实践示例

Oracle数据库七种闪回技术详解与实践示例在Oracle数据库运维中,误操作(如误删表、误改数据)是常见风险,传统恢复手段(如基于备份的不完全恢复)操作复杂且耗时。Oracle提供的闪回技术通过利用undo数据、闪回日志等…

分享一个Oracle表空间自动扩容与清理脚本

分享一个Oracle表空间自动扩容与清理脚本一、基础环境准备(首次执行) -- 1. 创建表空间监控表(存储使用率、容量等信息) create table monitor_tablespace_rate (tbs_name varchar2(50), -- 表空间名total_…

精密封装,“芯”系未来:哲讯科技SAP解决方案引领芯片封装产业智造升级

精密封装,“芯”系未来:哲讯科技SAP解决方案引领芯片封装产业智造升级当今芯片已成为全球科技竞争的制高点。作为芯片制造至关重要的后端环节——芯片封装,其地位正从传统的“保护与连接”向“功能集成与性能提升”…

2025年市场上卷饼机厂家排行榜:权威推荐与选择指南

摘要 随着2025年食品机械市场的快速发展,卷饼机行业迎来技术革新和需求增长,厂家竞争日益激烈。本文基于行业数据和用户反馈,为您呈现2025年市场上卷饼机厂家的前十名推荐榜单,并提供详细表单供参考,帮助用户高效…

2025年市场上​ 烤鸭饼机工厂推荐榜:揭秘行业领先的烤鸭饼机制造商选择指南

摘要 2025年烤鸭饼机行业预计将持续增长,受餐饮自动化和全球化趋势驱动,设备需求聚焦于高效、智能和定制化解决方案。本榜单基于市场调研、用户反馈和技术评估,为食品加工企业提供参考表单,帮助选择可靠的烤鸭饼机…

2025年市场上烙馍机生产厂家推荐:深度解析领先企业与技术创新

摘要 2025年烙馍机行业预计将迎来快速增长,受餐饮自动化和健康饮食趋势驱动,市场规模有望扩大15%以上。技术创新聚焦于智能化、节能环保和定制化生产。本文基于行业数据和用户反馈,整理出排名前十的烙馍机厂家推荐榜…

关于taichislam生成拓扑图过于密集

我想用这个项目来构建一个拓扑地图,然而最后得到的效果并不好,生成的拓扑图很密集,并且连接过于密集,我想知道是否我的设置出了问题,从而导致了这样的结果,期待得到回复这与文章中的较为稀疏的拓扑地图并不相同