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

OI 各种东西的板子

线段树

const int _mxn=1e5+5;
int n;
ll a[_mxn];
struct segtree
{typedef ll dat_type;struct node{int l,r;dat_type dat;dat_type add;int len(){return r-l+1;}}tr[_mxn<<2];inline int ls(int p){return p<<1;}inline int rs(int p){return p<<1|1;}void _pushup(dat_type &pdat,dat_type ldat,dat_type rdat)//{pdat=ldat+rdat;}void _upd(int p,dat_type add)//{tr[p].dat+=add*tr[p].len();tr[p].add+=add;}void pushup(int p){_pushup(tr[p].dat,tr[ls(p)].dat,tr[rs(p)].dat);}void build(int p,int l,int r){tr[p].l=l,tr[p].r=r;tr[p].add=0;if(l==r){tr[p].dat=a[l];return;}int mid=(l+r)>>1;build(ls(p),l,mid);build(rs(p),mid+1,r);pushup(p);}void pushdown(int p){_upd(ls(p),tr[p].add);_upd(rs(p),tr[p].add);tr[p].add=0;//记得清零 tag}void update(int p,int l,int r,dat_type k){if(l<=tr[p].l&&tr[p].r<=r){_upd(p,k);return;}if(r<tr[p].l||tr[p].r<l)return;pushdown(p);update(ls(p),l,r,k);update(rs(p),l,r,k);pushup(p);}dat_type query(int p,int l,int r){if(l<=tr[p].l&&tr[p].r<=r)return tr[p].dat;if(r<tr[p].l||tr[p].r<l)return 0;//pushdown(p);dat_type res;_pushup(res,query(ls(p),l,r),query(rs(p),l,r));return res;}
};

咕咕咕。。。

http://www.jsqmd.com/news/9058/

相关文章:

  • 价值弥漫:AI元人文的场域革命与共生之路
  • 阿里云为何,一个邮箱绑定了两个账号 - 教程
  • 做题记录 #1
  • 深入解析:【设计模式-3.5】结构型——装饰器模式
  • 阿爸阿爸
  • Python 数据分析与可视化实战:从数据清洗到图表呈现 - 指南
  • 深度学习优化器算法巧思速览
  • 完整教程:LangChain完全指南:从入门到精通,打造AI应用开发新范式
  • 在Windows下使用lucky实现TLS/SSL证书自动化
  • 【深度学习优化算法】02:凸性 - 详解
  • 调了很久的代码总结
  • 在Windows上搭建 EasyTier 公共服务器
  • Transformer模型开发从0到1——原理深入与项目实践
  • 鸿蒙OS基于UniApp的区块链钱包创建实践:打造支持鸿蒙生态的Web3应用#三方框架 #Uniapp
  • CF700E
  • 价值弥漫:“AI元人文”的场域革命与共生之路
  • k8s之pod概念
  • 鸿蒙版Taro 搭建开发环境 - 教程
  • CF 1055 Div.1+Div.2
  • LUCKY STUN穿透在Windows上使用UPnP工具为BT客户端自动添加内外端口号不同的映射规则
  • 2026 NOI 做题记录(五)
  • ARC 207 (Div.1)
  • “齐俊杰投资智能体”更新完了9月份的资料
  • 联想电脑护眼卫士与系统颜色配置(X-Rite)冲突 | 显示设置频繁变换色阶 - 解决方案 - 指南
  • (转载)无人机飞行模式全面解析
  • InstructGPT 论文略读:三步走,让大模型真正听懂人话
  • LVS+Keepalived高可用群集 - 指南
  • luogu P1020 [NOIP 1999 提高组] 导弹拦截
  • RabbitMQ 离线安装
  • Nginx 离线安装