/*
线段树学习:如果一个节点为i,那么他的左孩子为2I+1,右孩子为2i+2;
*/ #include<stdio.h>
#define min(a,b) a<b?a:b;
int tree[];
int a[] = {,,,,,};
//创建树
void create(int root, int c[], int start, int end) {//root表示当前线段树下标
//a表示用来构造线段树的数组
//star表示数组起始位置
//end表示数组末尾位置
if (start == end) {
//叶子节点
tree[root] = c[start];
}
else {
int mid = (start + end) / ;
create(root * + , a, start, mid);//构造左子树
create(root * + , a, mid+, end);//构造右子树
tree[root] = min(tree[root * + ], tree[root * + ]);//节点保存最小值
} } //线段树区间查询,查询最小值 int find(int root, int starti, int endi, int start, int end) {
if (starti > end || endi < start) {
return ;//无法查询到
}
if (starti <=start&&endi >= end) {
return tree[root];
}
int mid = (start + end) / ;
return min(find(root * + , starti, endi, start, mid),find(root*+,starti,endi,mid+,end)); } //节点更新,节点的更新势必会影响到其父节点的更新,所以更新了节点之后还得更新其父节点 void update(int root, int start, int end, int index, int num) {
//root表示树状数组根节点下标
//start区间其实下标
//end区间结尾下标
//index需要更新的结点在原数组中的的下标
//num更新的数值,假设加上num
if (start == end) {
//叶子节点
if (start == index) {
//判断是否是需要跟新的结点
tree[root] += num;
}
}
else {
int mid = (start + end) / ;
if (index <= mid) {
//二分,如果小于mid则只在左子树查找
update(root * + , start, mid, index, num);
}
else {
update(root * + , mid + , end, index, num);
}
tree[root] = min(tree[root * + ], tree[root * + ]);
}
} int main() {
create(, a, ,);
int x, y;
int index, number;
//情书如你要跟新的坐标和数值
scanf("%d %d", &index, &number);
update(, , , index, number);
while (~scanf("%d %d", &x, &y)) {
printf("%d\n", find(, x, y, ,));
} return ;
}

线段树学习----C语言的更多相关文章

  1. zkw线段树学习笔记

    zkw线段树学习笔记 今天模拟赛线段树被卡常了,由于我自带常数 \(buff\),所以学了下zkw线段树. 平常的线段树无论是修改还是查询,都是从根开始递归找到区间的,而zkw线段树直接从叶子结点开始 ...

  2. 线段树学习笔记(基础&进阶)(一) | P3372 【模板】线段树 1 题解

    什么是线段树 线段树是一棵二叉树,每个结点存储需维护的信息,一般用于处理区间最值.区间和等问题. 线段树的用处 对编号连续的一些点进行修改或者统计操作,修改和统计的复杂度都是 O(log n). 基础 ...

  3. JSOI2008 Blue Mary开公司 | 李超线段树学习笔记

    题目链接:戳我 这相当于是一个李超线段树的模板qwqwq,题解就不多说了. 代码如下: #include<iostream> #include<cstdio> #include ...

  4. hdu 1542 线段树+扫描线 学习

    学习扫描线ing... 玄学的东西... 扫描线其实就是用一条假想的线去扫描一堆矩形,借以求出他们的面积或周长(这一篇是面积,下一篇是周长) 扫描线求面积的主要思想就是对一个二维的矩形的某一维上建立一 ...

  5. 【学习笔记】线段树—扫描线补充 (IC_QQQ)

    [学习笔记]线段树-扫描线补充 (IC_QQQ) (感谢 \(IC\)_\(QQQ\) 大佬授以本内容的著作权.此人超然于世外,仅有 \(Luogu\) 账号 尚可膜拜) [学习笔记]线段树详解(全) ...

  6. 线段树合并学习笔记(P4556)

    直入主题: 学习线段树合并..... 从名字就能看出,这个东西要合并线段树..... 线段树怎么能合并呢...... 暴力合就行了啊...... 一次从上往下的遍历,把所有的节点信息暴力合并,然后就没 ...

  7. UOJ#470. 【ZJOI2019】语言 虚树,线段树合并

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ470.html 前言 做完情报中心来看这个题突然发现两题有相似之处然后就会做了. 题解 首先,我们考虑将所有答案点对分为两 ...

  8. Luogu5327【ZJOI2019】语言【树上差分,线段树合并】

    题目大意 给定一棵$n$个节点的树,维护$n$个集合,一开始第$i$个集合只有节点$i$.有$m$个操作,每次操作输入一个$(u,v)$,表示将$(u,v)$这条链上所有点所属的集合合并.求有多少个无 ...

  9. 可持久化线段树的学习(区间第k大和查询历史版本的数据)(杭电多校赛第二场1011)

    以前我们学习了线段树可以知道,线段树的每一个节点都储存的是一段区间,所以线段树可以做简单的区间查询,更改等简单的操作. 而后面再做有些题目,就可能会碰到一种回退的操作.这里的回退是指回到未做各种操作之 ...

随机推荐

  1. Governing sand 贪心

    题目链接:https://ac.nowcoder.com/acm/contest/887/C 题目描述 The Wow village is often hit by wind and sand,th ...

  2. Django HttpResponse、render、redirect

    一.HttpResponse 作业:返回相应的内容 格式: return HttpResponse("Hello, World") 二.render 作业:提交网页和字符串替换 提 ...

  3. Jenkins-k8s-helm-harbor-githab-mysql-nfs微服务发布平台实战

    基于 K8S 构建 Jenkins 微服务发布平台 实现汇总: 发布流程设计讲解 准备基础环境 K8s环境(部署Ingress Controller,CoreDNS,Calico/Flannel) 部 ...

  4. 异数OS 织梦师-水桶(三)-- RAM共享存储方案

    . 异数OS 织梦师-水桶(三)– RAM共享存储方案 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 652455 ...

  5. OAuth2.0的那点荒唐小秘密 -几个简单概念和原理

    OAuth2.0这个名词你是否在项目中时常听到呢?是否觉得好像懂,又好像不太懂呢? 最近一直想写篇关于OAuth2.0的东西,记录下我的学习与感悟,然各种理由的拖延,直到今日才静下心来写下这篇博客.当 ...

  6. Ubuntu中部署Django项目的配置与链接MySQL

    Django的简介 MVT模式的介绍创建项目的虚拟环境 本次使用的是pip安装 一.更新 sudo apt update 二.安装pip sudo apt install python3-pip 三. ...

  7. ios--->NStimer用法

    NStimer用法 1.初始化 (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL ...

  8. java.net.UnknownHostException 异常处理(个人案例)

    案例 今天在公司开发中,遇到一个比较奇怪的异常 ,java.net.UnknownHostException 异常处理  ,一直没找到什么好的办法解决 解决方案 在公司的项目开发中,项目都是连了很多个 ...

  9. Spring AOP源码分析--代理方式的选择

    能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! 年前写了一个面试突击系列的文章,目前只有redis相关的.在这个系列里,我整理了一些面试题与大家 ...

  10. 超链接a标签的伪类选择器问题,Link标签与visited标签的失效问题(问题介绍与解决方法)。

    <!DOCTYPE html>< html>< head>     <meta charset="utf-8" />     < ...