数据结构模板代码合集(不完整)
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)
原文标题:Domain Adaptive YOLO for One-Stage Cross-Domain Detection 中文标题:面向单阶段跨域检测的域自适应YOLO 1、Abstract 域转移是目标检测器在实际应用中推广的主要挑战。两级检测器的域自适应新兴技术有助于解决这个问题。然而,两级…...
面试题:描述在前端开发中,如何利用数据结构来优化页面渲染性能,并给出一个具体的示例。
在前端开发中,优化页面渲染性能是提升用户体验的关键之一。合理地使用数据结构可以有效地减少DOM操作的次数、提高数据处理的效率,从而加快页面的渲染速度。以下是一些策略,并给出一个具体的示例。 1. 使用合适的数据结构 数组与对象&#…...
微积分复习笔记 Calculus Volume 1 - 3.2 he Derivative as a Function
3.2 The Derivative as a Function - Calculus Volume 1 | OpenStax...
html 轮播图效果
轮播效果: 1、鼠标没有移入到banner,自动轮播 2、鼠标移入:取消自动轮播、移除开始自动轮播 3、点击指示点开始轮播到对应位置 4、点击前一个后一个按钮,轮播到上一个下一个图片 注意 最后一个图片无缝滚动,就是先克隆第一个图片…...
Android Room(SQLite) too many SQL variables异常
SQLiteException 一、解决办法1. 修改数据库语句2. 分批执行 二、问题根源 转载请注明出处: https://blog.csdn.net/hx7013/article/details/143198862 在使用 Room 或其他基于 SQLite 的 ORM 框架时,批量操作如 IN 或 NOT IN 查询可能会触发 android.database.sqli…...
sentinel原理源码分析系列(八)-熔断
限流为了防止过度使用资源造成系统不稳,熔断是为了识别出”坏”资源,避免好的资源受牵连(雪崩效应),是保证系统稳定性的关键,也是资源有效使用的关键,sentinel熔断插槽名称Degrade(降级),本人觉得应该改为熔…...
安全见闻(4)——开阔眼界,不做井底之蛙
内容预览 ≧∀≦ゞ 安全见闻四:操作系统安全机制深度解析声明操作系统机制1. 注册表2. 防火墙3. 自启动与计划任务4. 事件日志5. 内核驱动与设备驱动6. 系统服务7. 进程与线程8. 系统编程 从操作系统机制看病毒设计1. 自启动:病毒如何在系统启动时运行&a…...
(二十二)、k8s 中的关键概念
文章目录 1、总体概览2、第一层:物理机、集群、Node、Pod 之间的关系2、第二层:命名空间 Namespace3、定义4、控制平面(Control Plane)5、特别的概念 Service6、Deployment 经过 之前几篇文章对 k8s 的实践,结合实践&…...
python基础综合案例(数据可视化-地图可视化)
1.基础地图使用 注意写名字的时候要写全名,比如上海市不能写出上海,不然看不到数据 鼠标点击即可看到数据 设置属性的时候不要忘记导包 # 演示地图可视化的基础使用 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts # 准…...
基于SpringBoot足球场在线预约系统的设计与实现
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 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流程,并加速软件开发生命周期(SDLC)。 将严格的、基于合规性的静态分析(如Helix QAC所提供)作为新阶段添加到现有的GitLab CI/CD流程中,将进一步增强SD…...
前端面试题-token的登录流程、JWT
这是我的前端面试题的合集的第一篇,后面也会更新一些笔试题目。秋招很难,也快要结束了。但是,不要放弃,一起加油^_^ 一、token的登录流程 1.客户端用账号密码请求登录 2.服务端收到请求,需要去验证账号密码 3.验证成…...
【软考高级架构】关于分布式数据库缓存redis的知识要点汇总
一.分布式数据库的含义 分布式数据库缓存指的是在高并发的环境下,为了减轻数据库的压力和提高系统响应时间,在数据库系统和应用系统之间增加一个独立缓存系统。 二.常见的缓存技术 (1)MemCache: Memcache是一个高性能的分布式的内…...
构建自然灾害预警决策一体化平台,筑牢工程安全数字防线
近年来,国家和部委也强调了要切实加强地质灾害监测预警。作为国内智慧应急领域的先行者,Mapmost持续探索利用数字孪生技术,推进自然灾害风险预警精细化,强化对监测数据的综合分析和异常信息研判处置。建立健全区域风险预警与隐患点…...
随机题两题
逆序对 题目 给定一个数组,求其中有多少逆序对,要求时间复杂度不超过nlogn。 思路 使用归并排序的分治思想,将数组递归地分为左右两部分。在合并两个有序子数组时,若左侧数组中的某个数大于右侧数组中的某个数,则可…...
信息安全工程师(69)数字水印技术与应用
前言 数字水印技术是一种在数字媒体中嵌入特定信息的技术,这些信息可以是版权信息、元数据等。 一、数字水印技术的定义与原理 数字水印技术(Digital Watermarking)是将一些标识信息(即数字水印)直接嵌入数字载体&…...
知识点框架笔记3.0笔记
如果基础太差,搞不清基本交规的(模考做不到60分),建议找肖肖或者小轩老师的课程看一遍,内容差不多(上面有链接),笔记是基于肖肖和小轩老师的科目一课程以及公安部交管局法规…...
Android组件化开发
Android组件化开发 组件化开发概念组件化开发的由来组件化开发有什么优势?组件化开发如何拿到入口参数?如何解决相同资源文件名合并的冲突?模式切换,如何使APP在单独调试跟整体调试自由切换?多个Module之间如何引用一些共同的library以及工具类?我们如何实现依赖关系及组…...
centos-LAMP搭建与配置(论坛网站)
文章目录 LAMP简介搭建LAMP环境安装apache(httpd)安装mysql安装PHP安装php-mysql安装phpwind LAMP简介 LAMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写:Linux操作系统,网页服务器Apache,…...
Python 实现日期计算与日历格式化输出
目录 一、引言 二、需求分析 三、实现思路 四、代码实现 五、代码分析 六、测试与验证 七、总结与展望 在日常的编程中,我们经常会遇到与日期相关的问题,比如计算两个日期之间的天数差、确定某个特定日期是星期几以及格式化输出日历等。本文将详细…...
npm install 安装很慢怎么办?
安装源管理器nrm sudo npm install -g nrm #macOSnpm install -g nrm #Windows以管理员身份运行 安装完毕之后通过以下命令可以切换你想要的源 nrm ls #查看源列表* npm ---------- https://registry.npmjs.org/yarn --------- https://registry.yarnpkg.com/tencent ------…...
【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff(geogrid,WPS所需数据)
【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff(geogrid,WPS所需数据) 数据准备:以叶面积指数LAI为例QGis实操:基于GIS4WRF插件将geotiff数据转为tiff警告:GIS4WRF: Input layer had an unexpected …...
python+大数据+基于Hadoop的个性化图书推荐系统【内含源码+文档+部署教程】
博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做&am…...
修改huggingface的缓存目录以及镜像源
执行以下语句查看当前配置 huggingface-cli env默认输出应该如下 (py39-transformers) PS D:\py_project\transformers_demo> huggingface-cli envCopy-and-paste the text below in your GitHub issue.- huggingface_hub version: 0.26.1 - Platform: Windows-10-10.0.22…...
散列表:如何解决哈希表装载因子过高导致的性能下降问题?
散列表:如何解决哈希表装载因子过高导致的性能下降问题? 当哈希表装载因子过高时,会导致性能下降,可以通过以下几种方法来解决: 一、扩容哈希表 (一)原理 当装载因子超过一定阈值时,增加哈希表的大小,然后将现有的元素重新哈希到新的哈希表中。这样可以降低装载因…...
Vue Router进阶学习
各位程序员1024节日快乐~ Vue Router 是 Vue.js 的官方路由管理器,它和 Vue.js 的核心深度集成,让构建单页面应用(SPA)变得简单。以下是 Vue Router 的基本用法 Vue Router 基本用法 安装 Vue Router 首先,你需要安…...
Linux巡检利器xsos的安装和使用
一、 一般项目基本完成的时候,后期运维工作的重点就是及时的,合理的频率巡检了,巡检的目的主要是及时发现各种各样的问题 那么,自己编写shell脚本是大部分人的第一选择,这里有个比较麻烦的地方,shell脚本…...
查找手机网站/代写文章
Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程) 黑马程序员Python教程_600集Python从入门到精通教程 [小甲鱼]零基础入门学习Python 更多资料请关注公众号:计算机视觉与图形学实战 Python教程全套,现在分享给大…...
wordpress python插件/怎么做网络推广赚佣金
一、项目背景开发文档管理系统或OA办公系统的时候,实现在线处理word文档的功能比较容易,但是也经常会有客户提出文档版本管理的需求,这就需要同时在线打开两个word文件,对比两个不同版本的word文档内容,在网上几乎找不…...
贵阳网站设计企业/武汉百度推广seo
向量化 无论使用哪门编程语言,使用该编程语言内置的函数总要比自己手写的函数快很多,如Octave中直接对矩阵A和B进行A*B即可实现矩阵乘法,且效率比自己手写高得多。故,倘若能将数据简化,并应用于内置函数中,…...
哪个网站做h5最好/广州疫情最新情况
TensorFlow ServingApache MXNet Model ServerNVIDIA TensorRTPyTorch ServingONNX RuntimeFlutterTensorFlow.jsDeep Learning PlatformSeldonNeuromationTensorFlow LitePolyaxonKubeflowFiddlerOpenVINOH2O.aiPredictionIOMLflowB...
中央农村工作会议2023原文/成都网站快速排名优化
范围、利益相关者和目标 为我省科技创新团队提供平台 为省和国家相关部门提供相关数据以及提高管理效率 促进我省创信事业的发展 利益相关者分析 院长 希望项目可以简化员工的工作方式,优化管理,促进我省的科技创新发展 政府工作人员 希望得到领导的认可…...
墓园网站建设价格/新媒体推广渠道有哪些
二、六大性能调优技术(JVM调优网络调优数据库调优LINUX内核调优中间件底层探索容器环境调优) 手绘板(脑图) 1、JVM调优 JVM调优必备理论知识-Gc COLLECTOR-三色标记 垃圾回收算法串讲 JVM常见参数总结 JVM调优实战 JVM&…...