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

数据结构模板代码合集(不完整)


P3368 【模板】树状数组 2

#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e5 + 7;int n, m, s, t;
int ans;
int a[maxn];
struct node{int l, r;int num;
}tr[maxn * 4];void build(int p, int l, int r){tr[p] = {l, r, 0};if(l == r){tr[p].num = a[l];return ;}int mid = l + r >> 1;build(p << 1, l, mid);build(p << 1 | 1, mid + 1, r);
}		void modify(int p, int l, int r, int k) {if(tr[p].l >= l && tr[p].r <= r) {tr[p].num += k;return ;}int mid = tr[p].l + tr[p].r >> 1;if(l <= mid) modify(p << 1, l, r, k);if(r > mid) modify(p << 1 | 1, l, r, k);
}void query(int p, int x){	ans += tr[p].num;if(tr[p].l == tr[p].r) return;int mid = tr[p].l + tr[p].r >> 1;if(x <= mid) query(p << 1, x);else query(p << 1 | 1, x); 
}int main(){cin >> n >> m;for (int i = 1; i <= n; ++ i) {scanf("%d", &a[i]);}build(1, 1, n);for (int i = 1; i <= m; ++ i) {int c;scanf("%d", &c);if(c == 1) {int x, y, z;scanf("%d%d%d", &x, &y, &z);modify(1, x, y, z);}else {ans = 0;int x;scanf("%d", &x);query(1, x);printf("%d\n", ans);}}return 0;
}

P3374 【模板】树状数组 1

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{ll l,r,sum;
};
node tree[10000005];
int n,m,input[5000005];
void build(int i,int l,int r){tree[i].l=l;tree[i].r=r;if(l==r){tree[i].sum=input[l];return;}int mid=(l+r)>>1;build(i*2,l,mid);build(i*2+1,mid+1,r);tree[i].sum=tree[i*2].sum+tree[i*2+1].sum;
}
void add(int i,int dis,int k){if(tree[i].l==tree[i].r){tree[i].sum+=k;return ;}if(dis<=tree[i*2].r)  add(i*2,dis,k);else add(i*2+1,dis,k);tree[i].sum=tree[i*2].sum+tree[i*2+1].sum;return ;
}
int search(int i,int l,int r){if(tree[i].l>=l && tree[i].r<=r)return tree[i].sum;if(tree[i].r<l || tree[i].l>r)  return 0;int s=0;if(tree[i*2].r>=l)  s+=search(i*2,l,r);if(tree[i*2+1].l<=r)  s+=search(i*2+1,l,r);return s;
}
int main(){cin>>n>>m;for(int i=1;i<=n;i++) cin>>input[i];build(1,1,n);//cin>>m;while(m--){int op;cin>>op;if(op==1){int x,y,z;cin>>x>>z;//input[x]^=z;add(1,x,z);}else{;int x,y;cin>>x>>y;cout<<search(1,x,y)<<endl;}} return 0;
} 

P3372 【模板】线段树 1

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=100005;
struct node{int l,r,sum,lz;
}tree[N*4];
int n,q,a[N];
void build(int p,int l,int r){tree[p].l=l,tree[p].r=r;if(l==r){tree[p].sum=a[l];return;}int mid=(l+r)>>1;build(p*2,l,mid);build(p*2+1,mid+1,r);tree[p].sum=tree[p*2].sum+tree[p*2+1].sum;
}
void pushdown(int p){if(tree[p].lz){int mid=(tree[p].l+tree[p].r)>>1;tree[p*2].lz+=tree[p].lz;tree[p*2+1].lz+=tree[p].lz;tree[p*2].sum+=(tree[p*2].r-tree[p*2].l+1)*tree[p].lz;tree[p*2+1].sum+=(tree[p*2+1].r-tree[p*2+1].l+1)*tree[p].lz;tree[p].lz=0;}
}
void add(int p,int l,int r,int k){if(tree[p].r<l||tree[p].l>r) return;if(tree[p].l>=l&&tree[p].r<=r){tree[p].sum+=(tree[p].r-tree[p].l+1)*k;tree[p].lz+=k;return;}pushdown(p);if(tree[p*2].r>=l) add(p*2,l,r,k);if(tree[p*2+1].l<=r) add(p*2+1,l,r,k);tree[p].sum=tree[p*2].sum+tree[p*2+1].sum;
}
int search(int p,int l,int r){if(tree[p].r<l||tree[p].l>r) return 0;if(tree[p].l>=l&&tree[p].r<=r) return tree[p].sum;pushdown(p);int s=0;if(tree[p*2].r>=l) s+=search(p*2,l,r);if(tree[p*2+1].l<=r) s+=search(p*2+1,l,r);return s;
}
signed main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie();cin>>n>>q;for(int i=1;i<=n;i++) cin>>a[i];build(1,1,n);while(q--){int op,l,r,x;cin>>op;if(op==1){cin>>l>>r>>x;add(1,l,r,x);}else{cin>>l>>r;cout<<search(1,l,r)<<endl;}}return 0;
}

相关文章:

数据结构模板代码合集(不完整)

P3368 【模板】树状数组 2 #include <bits/stdc.h> using namespace std; const int maxn 5e5 7;int n, m, s, t; int ans; int a[maxn]; struct node{int l, r;int num; }tr[maxn * 4];void build(int p, int l, int r){tr[p] {l, r, 0};if(l r){tr[p].num a[l];r…...

shell脚本语法详解

目录 shell语法基础 指定shell解析器 注释 运行 变量 定义变量 引用变量 清除变量值 从键盘获取值 输入单值 添加输入提示语 读取多值 ​编辑 定义只读变量 环境变量 设置环境变量与查看环境变量 特殊变量 三种引号的作用与区别 小括号与大括号 参数传递 位…...

2021亚洲机器学习会议:面向单阶段跨域检测的域自适应YOLO(ACML2021)

原文标题&#xff1a;Domain Adaptive YOLO for One-Stage Cross-Domain Detection 中文标题&#xff1a;面向单阶段跨域检测的域自适应YOLO 1、Abstract 域转移是目标检测器在实际应用中推广的主要挑战。两级检测器的域自适应新兴技术有助于解决这个问题。然而&#xff0c;两级…...

面试题:描述在前端开发中,如何利用数据结构来优化页面渲染性能,并给出一个具体的示例。

在前端开发中&#xff0c;优化页面渲染性能是提升用户体验的关键之一。合理地使用数据结构可以有效地减少DOM操作的次数、提高数据处理的效率&#xff0c;从而加快页面的渲染速度。以下是一些策略&#xff0c;并给出一个具体的示例。 1. 使用合适的数据结构 数组与对象&#…...

微积分复习笔记 Calculus Volume 1 - 3.2 he Derivative as a Function

3.2 The Derivative as a Function - Calculus Volume 1 | OpenStax...

html 轮播图效果

轮播效果&#xff1a; 1、鼠标没有移入到banner,自动轮播 2、鼠标移入&#xff1a;取消自动轮播、移除开始自动轮播 3、点击指示点开始轮播到对应位置 4、点击前一个后一个按钮&#xff0c;轮播到上一个下一个图片 注意 最后一个图片无缝滚动&#xff0c;就是先克隆第一个图片…...

Android Room(SQLite) too many SQL variables异常

SQLiteException 一、解决办法1. 修改数据库语句2. 分批执行 二、问题根源 转载请注明出处: https://blog.csdn.net/hx7013/article/details/143198862 在使用 Room 或其他基于 SQLite 的 ORM 框架时&#xff0c;批量操作如 IN 或 NOT IN 查询可能会触发 android.database.sqli…...

sentinel原理源码分析系列(八)-熔断

限流为了防止过度使用资源造成系统不稳&#xff0c;熔断是为了识别出”坏”资源&#xff0c;避免好的资源受牵连(雪崩效应)&#xff0c;是保证系统稳定性的关键&#xff0c;也是资源有效使用的关键&#xff0c;sentinel熔断插槽名称Degrade(降级)&#xff0c;本人觉得应该改为熔…...

安全见闻(4)——开阔眼界,不做井底之蛙

内容预览 ≧∀≦ゞ 安全见闻四&#xff1a;操作系统安全机制深度解析声明操作系统机制1. 注册表2. 防火墙3. 自启动与计划任务4. 事件日志5. 内核驱动与设备驱动6. 系统服务7. 进程与线程8. 系统编程 从操作系统机制看病毒设计1. 自启动&#xff1a;病毒如何在系统启动时运行&a…...

(二十二)、k8s 中的关键概念

文章目录 1、总体概览2、第一层&#xff1a;物理机、集群、Node、Pod 之间的关系2、第二层&#xff1a;命名空间 Namespace3、定义4、控制平面&#xff08;Control Plane&#xff09;5、特别的概念 Service6、Deployment 经过 之前几篇文章对 k8s 的实践&#xff0c;结合实践&…...

python基础综合案例(数据可视化-地图可视化)

1.基础地图使用 注意写名字的时候要写全名&#xff0c;比如上海市不能写出上海&#xff0c;不然看不到数据 鼠标点击即可看到数据 设置属性的时候不要忘记导包 # 演示地图可视化的基础使用 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts # 准…...

基于SpringBoot足球场在线预约系统的设计与实现

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

操作系统笔记(二)进程,系统调用,I/O设备

什么是进程? 一个正在执行的程序一个包含运行一个程序所需要的所有信息的容器进程的信息保存在一个进程表中( Process Table)。进程表中的每一项对应一个进程,称为进程控制块(Process control block,PCB)。 PCB信息包括: 用户ID(UID)、进程ID(PID)…...

DevOps实践:在GitLab CI/CD中集成静态分析Helix QAC的工作原理与优势

基于云的GitLab CI/CD平台使开发团队能够简化其CI/CD流程&#xff0c;并加速软件开发生命周期&#xff08;SDLC&#xff09;。 将严格的、基于合规性的静态分析&#xff08;如Helix QAC所提供&#xff09;作为新阶段添加到现有的GitLab CI/CD流程中&#xff0c;将进一步增强SD…...

前端面试题-token的登录流程、JWT

这是我的前端面试题的合集的第一篇&#xff0c;后面也会更新一些笔试题目。秋招很难&#xff0c;也快要结束了。但是&#xff0c;不要放弃&#xff0c;一起加油^_^ 一、token的登录流程 1.客户端用账号密码请求登录 2.服务端收到请求&#xff0c;需要去验证账号密码 3.验证成…...

【软考高级架构】关于分布式数据库缓存redis的知识要点汇总

一.分布式数据库的含义 分布式数据库缓存指的是在高并发的环境下&#xff0c;为了减轻数据库的压力和提高系统响应时间&#xff0c;在数据库系统和应用系统之间增加一个独立缓存系统。 二.常见的缓存技术 &#xff08;1&#xff09;MemCache: Memcache是一个高性能的分布式的内…...

构建自然灾害预警决策一体化平台,筑牢工程安全数字防线

近年来&#xff0c;国家和部委也强调了要切实加强地质灾害监测预警。作为国内智慧应急领域的先行者&#xff0c;Mapmost持续探索利用数字孪生技术&#xff0c;推进自然灾害风险预警精细化&#xff0c;强化对监测数据的综合分析和异常信息研判处置。建立健全区域风险预警与隐患点…...

随机题两题

逆序对 题目 给定一个数组&#xff0c;求其中有多少逆序对&#xff0c;要求时间复杂度不超过nlogn。 思路 使用归并排序的分治思想&#xff0c;将数组递归地分为左右两部分。在合并两个有序子数组时&#xff0c;若左侧数组中的某个数大于右侧数组中的某个数&#xff0c;则可…...

信息安全工程师(69)数字水印技术与应用

前言 数字水印技术是一种在数字媒体中嵌入特定信息的技术&#xff0c;这些信息可以是版权信息、元数据等。 一、数字水印技术的定义与原理 数字水印技术&#xff08;Digital Watermarking&#xff09;是将一些标识信息&#xff08;即数字水印&#xff09;直接嵌入数字载体&…...

知识点框架笔记3.0笔记

如果基础太差&#xff0c;搞不清基本交规的&#xff08;模考做不到60分&#xff09;&#xff0c;建议找肖肖或者小轩老师的课程看一遍&#xff0c;内容差不多&#xff08;上面有链接&#xff09;&#xff0c;笔记是基于肖肖和小轩老师的科目一课程以及公安部交管局法规&#xf…...

Spring Boot 自动配置 2.0 深度解析(七):从 spring.factories 到 @AutoConfiguration 的范式转移

Java 新纪元 — JDK 25 + Spring Boot 4 全栈实战 | Day 07 上一篇:[D6 Spring Boot 4 架构巨变解析] | 下一篇:[D8 响应式全家桶升级] 引子:一个让整个 Spring 生态颤抖的注解 2013 年,Spring Boot 用 spring.factories + @EnableAutoConfiguration 一套组合拳干掉了 XML…...

5个强力方案:让老旧Mac用户的系统升级难题获得完美解决

5个强力方案&#xff1a;让老旧Mac用户的系统升级难题获得完美解决 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 问题导入&#xff1a;你的Mac被时代抛弃了吗&#xff1…...

JavaScript基础课程二十一、前端框架入门(Vue3 组合式 API)

本课作为前端框架入门核心课&#xff0c;聚焦Vue3组合式API&#xff0c;从理念、语法到实战全方位讲解。Vue3凭借数据驱动、声明式渲染的特性&#xff0c;彻底简化原生DOM操作&#xff0c;让开发更聚焦业务逻辑。组合式API作为Vue3主推方案&#xff0c;解决了复杂项目逻辑分散的…...

windows安装docker desktop wsl too old,wsl --update速度为0解决方法

WSL needs updating Your version of Windows Subsystem for Linux (WSL) is too old. Run the command below to update or for more information, visit .the Microsoft WSL documentation wsl --update 如果你遇到 C:\Users\a1>wsl --update 正在安装: 适用于 Linux …...

Z-Image-Turbo创意作品展:当AI遇见中国传统水墨

Z-Image-Turbo创意作品展&#xff1a;当AI遇见中国传统水墨 精选20组Z-Image-Turbo生成的中国风水墨作品&#xff0c;展示AI在传统艺术领域的创新应用 1. 开场白&#xff1a;AI与水墨的奇妙邂逅 最近试用了Z-Image-Turbo这个AI图像生成模型&#xff0c;专门用它创作了一批中国…...

ULID CLI工具完全指南:命令行操作与批量生成技巧

ULID CLI工具完全指南&#xff1a;命令行操作与批量生成技巧 【免费下载链接】javascript Universally Unique Lexicographically Sortable Identifier 项目地址: https://gitcode.com/gh_mirrors/javas/javascript ULID&#xff08;Universally Unique Lexicographical…...

Qwen3-14B实战体验:用Chainlit前端快速搭建你的第一个AI助手

Qwen3-14B实战体验&#xff1a;用Chainlit前端快速搭建你的第一个AI助手 1. 引言&#xff1a;为什么选择Qwen3-14B&#xff1f; 在当今AI技术快速发展的时代&#xff0c;找到一个既强大又易于部署的大语言模型并不容易。Qwen3-14B作为一款140亿参数的中等规模模型&#xff0c…...

利用傅立叶变换(FFT)预测股价

一、数学原理 假设股价的对数收益率&#xff08;为什么用对数收益率呢&#xff1f;是因为对数收益率更能满足平稳性要求&#xff09;是随时间周期变化的函数&#xff0c;用表示&#xff0c;根据傅立叶变换的原理&#xff0c;可以表示成如下形式&#xff1a; 为复数&#xff0c…...

PHP7.4性能优化:在银河麒麟V10 SP2系统上开启OPcache的完整配置指南

PHP7.4性能优化&#xff1a;在银河麒麟V10 SP2系统上开启OPcache的完整配置指南 对于运行在银河麒麟V10 SP2系统上的PHP应用来说&#xff0c;性能优化是一个永恒的话题。作为国产操作系统的代表&#xff0c;银河麒麟V10 SP2在x86架构上表现出色&#xff0c;而PHP7.4则是目前许多…...

MinerU在企业知识管理中的落地应用:OCR+图文问答构建智能文档中枢

MinerU在企业知识管理中的落地应用&#xff1a;OCR图文问答构建智能文档中枢 1. 引言&#xff1a;企业知识管理的痛点与机遇 想象一下这个场景&#xff1a;你的公司有成千上万份历史合同、技术文档、财务报表和会议纪要&#xff0c;它们以PDF、扫描件、图片的形式散落在各个服…...