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

线段树模板1

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
#define ll long longll n,m,sum[maxn<<2],add[maxn<<2];void pushup(ll id){sum[id]=sum[id<<1]+sum[id<<1|1];
}void pushdown(ll id,ll len){if(add[id]){add[id<<1]+=add[id];add[id<<1|1]+=add[id];sum[id<<1]+=(len-(len>>1))*add[id];sum[id<<1|1]+=(len>>1)*add[id];add[id]=0;}
}void build(ll l,ll r,ll id){if(l==r){cin>>sum[id];return;}ll mid=(l+r)>>1;build(l,mid,id<<1);build(mid+1,r,id<<1|1);pushup(id);
}ll query(ll a,ll b,ll l,ll r,ll id){if(a<=l&&b>=r)return sum[id];pushdown(id,r-l+1);ll mid=(l+r)>>1;ll ans=0;if(a<=mid)ans+=query(a,b,l,mid,id<<1);if(b>mid)ans+=query(a,b,mid+1,r,id<<1|1);return ans;
}void update(ll a,ll b,ll c,ll l,ll r,ll id){if(a<=l&&b>=r){add[id]+=c;sum[id]+=(r-l+1)*c;return;}pushdown(id,r-l+1);ll mid=(l+r)>>1;if(a<=mid)update(a,b,c,l,mid,id<<1);if(b>mid)update(a,b,c,mid+1,r,id<<1|1);pushup(id);
}int main(){cin>>n>>m;build(1,n,1);ll op,x,y,k;while(m--){cin>>op;if(op==1){cin>>x>>y>>k;update(x,y,k,1,n,1);}else{cin>>x>>y;cout<<query(x,y,1,n,1)<<endl;}}return 0;
}
http://www.jsqmd.com/news/8591/

相关文章:

  • 这些行业软件你用过哪个
  • 提供远程服务
  • 分享一些软件资讯
  • 20多年前李敖告訴你美國為什麼不可靠?
  • 2025美缝剂源头厂家最新推荐权威排行榜:深度解析五大品牌实力与选购指南
  • 2025数控铣床厂家最新企业品牌推荐排行榜, 双头数控铣床,双面数控铣床,龙门数控铣床,双侧数控铣床推荐这十家公司!
  • 详细介绍:Wi-Fi 切换 5G 的时机
  • 2025最新推荐点胶机源头厂家权威排行榜:涵盖自动点胶机,果冻胶,无痕内衣,热熔胶类设备,助力企业精准挑选优质厂家
  • 前端开源JavaScrip库 - 详解
  • Probabilistic method小记
  • 数据生成方法初步调研
  • 深入解析:一起学Spring AI:核心概念
  • Go 即时通讯体系:日志模块重构,并从main函数开始
  • 作为一个高中生开发者,我的所思所想
  • [Godot] 如何导出安卓 APK 并在手机上调试 - 指南
  • 代码随想录算法训练营 Day61 图论ⅩⅠ Floyd A※ 最短路径算法 - 指南
  • Elastic Stack 9.1.4 发布:重要安全更新与功能优化
  • 2025钛白粉源头厂家最新推荐排行榜:覆盖广东珠三角东莞华南深圳长三角地区的优质供应商解析
  • 详细介绍:Ubuntu开机自动运行Docker容器中的Qt UI程序
  • 完整教程:图论回溯
  • 实用指南:【论文阅读 | PR 2024 |ICAFusion:迭代交叉注意力引导的多光谱目标检测特征融合】
  • 做题记录(Oct.)
  • 生成式AI改进极端多标签分类技术
  • 2025.10.5——1绿
  • 【清晰教程】利用Git工具将本地项目push上传至GitHub仓库中 - 指南
  • 题解:2025.10.信友队.智灵班选拔面试题目
  • MX WEEK4
  • 实用指南:蓝桥杯_DS18B20温度传感器---新手入门级别超级详细解析
  • 实用指南:【25软考网工】第十章 网络规划与设计(1)综合布线
  • 2025.10.4 刷题