数据结构
文章平均质量分 74
关于数据结构
HeZephyr
但行好事,莫问前程!
展开
-
Apple Tree POJ3321 dfs序 + 树状数组
题意卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果。卡卡很喜欢苹果。树上有N个节点,卡卡给他们编号1到N,根的编号永远是1.每个节点上最多结一个苹果。卡卡想要了解某一个子树上一共结了多少苹果。现在的问题是不断会有新的苹果长出来,卡卡也随时可能摘掉一个苹果吃掉。你能帮助卡卡吗?解题思路此题我们的想法肯定是想将查询和修改都降为lognlognlogn的复杂度,这区间查询单点修改正好用树状数组或线段树解决即可。关键我们怎么将树转化为区间,即每颗子树都附上区间,dfsdfsdfs可以帮我们解决这个.原创 2021-08-12 09:23:36 · 218 阅读 · 0 评论 -
扫描线算法学习-完全解析 HDU 1542 Atlantis
文章目录前言例题引入扫描线算法介绍及演示如何实现入边和出边步骤区间表示注意事项代码实现参考资料前言看了好久的扫描线,终于看懂了,想用自己的语言阐述一下,加深理解。也供各位读者学习。注:学习本文之前首先得会线段树,离散化等操作,这里给出两篇blogblogblog供参考:程序设计之离散化,线段树入门。例题引入题目链接HDU-1542 Atlantis题目大意给你nnn个矩形,求它们的矩形面积并,即覆盖在平面上的面积为多少。思考针对求每个单独矩形的面积,实际上我们原创 2021-08-08 18:48:22 · 702 阅读 · 0 评论 -
后缀数组模板- 详细注释
本文转载于:https://www.cnblogs.com/RabbitHu/p/UOJ35.html,仅供自己理解后缀数组原理及使用后缀数组。/** *@filename:后缀数组模板 *@author: pursuit *@created: 2021-08-05 11:16**/#include <bits/stdc++.h>#define debug(a) cout << (#a)<< ":" << a << endl;转载 2021-08-05 11:27:12 · 159 阅读 · 0 评论 -
树状数组详解(一维+二维+差分+前缀和+公式优化)
文章目录一、问题引入二、树状数组(单点修改,区间查询)三、差分树状数组(区间修改,单点查询)四、差分树状数组+公式优化(区间修改,区间查询)五、二维树状数组(单点修改,区间查询)六、二维差分树状数组(区间修改,单点查询)七、二维差分树状数组+公式推导(区间修改,区间查询)一、问题引入有这样一个问题:现在有这样一个数列aaa,你需要进行下面两种操作:将某一个数加上 xxx求出某区间[l,r][l,r][l,r]每一个数的和数列长度为n(1≤n≤105)n( 1\leq n \leq 10^5)n原创 2021-04-27 19:58:24 · 1621 阅读 · 0 评论 -
POJ——3468(线段树区间修改模板题)Simple Problem with Integers
原题链接:http://poj.org/problem?id=3468题意:给你一个编号从1到N的整数序列,会进行若干个区间修改和查询功能,请你输出每次查询后的结果。解题思路:这是一道线段树区间修改的模板题,我们理解好题意照做即可,要注意范围,利用long long来存储。AC代码:#include<bits/stdc++.h>#define rep(i,a,n) for (int i=a;i<=n;i++)//i为循环变量,a为初始值,n为界限值,递增#define per原创 2020-08-08 16:58:26 · 345 阅读 · 0 评论 -
HDU——1698(线段树区间修改模板题)Just a Hook
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698题意:有一个挂钩是由连续金属棒组成,金属棒编号为1~n,我们会进行若干的区间替换操作,问最后的金属棒总和价值是多少?解题思路:这是一个典型的区间修改问题,我们按模板写就行,要注意的是这里是对金属棒进行替换,所以我们修改的时候一定要替换而不是相加,具体看代码。AC代码:#include<bits/stdc++.h>#define rep(i,a,n) for (int i=a;i<原创 2020-08-08 16:39:32 · 280 阅读 · 0 评论 -
线段树进阶之延迟标记 (~详细整理)区间修改
文章目录线段树进阶之延迟标记 (~详细整理)区间修改一、为什么需要添加延迟标记?二、区间修改具体实现线段树进阶之延迟标记 (~详细整理)区间修改一、为什么需要添加延迟标记?引入:我们如果要对某一区间的元素都进行更改,即是区间修改,不是单点修改。那么,对于没加延迟标记的线段树,我们要这样子进行修改:for(int i=l;i<=r;i++){ UpdateTree(i,value)}这要进行r-l+1此单点修改来实现此区间修改操作,我们仔细想想,如果我们是这样进行的,单点修改的时间原创 2020-08-08 15:53:13 · 2749 阅读 · 4 评论 -
HDU——1166 敌兵布阵(线段树入门模板题——区间求和)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy原创 2020-08-07 15:00:30 · 354 阅读 · 0 评论 -
POJ——3624 Balanced Lineup(线段树入门——区间最值问题)
原题链接:http://poj.org/problem?id=3264每天挤奶时,农夫John的N头奶牛(1≤N≤50,000头)总是按照相同的顺序排列。一天,农夫约翰决定和几头牛组织一场极限飞盘游戏。为了简单起见,他将从挤奶阵容中挑选一系列连续的奶牛来玩这个游戏。然而,为了让所有的奶牛都能玩得开心,它们的身高不应该相差太多。农民John列出了Q(1≤Q≤200,000)头奶牛的身高(1≤身高≤1,000,000)。对于每一组,他希望您确定组中最矮和最高的牛之间的身高差异。Input第一行:两个空原创 2020-08-07 14:50:46 · 401 阅读 · 0 评论 -
HDU——1754 I hate it(线段树入门模板题 ——区间最大值问题)
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分数最高的是多少。这让很多学生很反感。不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的询问。当然,老师有时候需要更新某位同学的成绩。Input本题目包含多组测试,请处理到文件结束。在每个测试的第一行,有两个正整数 N 和 M ( 0<N<=200000,0<M<5000 ),分别原创 2020-08-07 13:56:07 · 302 阅读 · 0 评论 -
线段树入门(Segment Tree)详细整理(超简单易学的数据结构)
文章目录线段树入门(Segment Tree)~详细整理(超简单易学的数据结构)一、什么是线段树?二、线段树的基本内容三、线段树的基本操作1、点更新2、区间查询线段树入门(Segment Tree)~详细整理(超简单易学的数据结构)前言:理解线段树着实花了我很多时间,主要之前一直有个误区,就是对线段树中存储的信息,我认为只能是区间和,可万万没想到呀,它还可以是别的东西:区间最小值、区间最大值等等呀,我表示????(已黑化),好了,言归正传,博主是完全理解了线段树之后才有勇气写这篇文章的,所以我是根据一原创 2020-08-07 12:17:56 · 3711 阅读 · 6 评论 -
UVA-679(完全二叉树)Dropping Balls
原题链接: UVA-679测试样例Sample Input54 23 410 12 28 128-1Sample Output1275123255题意: 有一颗完全二叉树,最大深度为DDD。所有节点从上到下从左到右依次编号1,2,3,4,...,2D−11,2,3,4,...,2^D-11,2,3,4,...,2D−1。在根节点处放下一个小球,它会往下落。而每个节点都有一个开关,若开关打开则小球往右走,否则小球往左走。直到走到叶子结点。现在有III个小球顺序下落,求第I原创 2020-12-03 20:29:22 · 271 阅读 · 0 评论 -
单调队列学习笔记(~超详细)
文章目录概念例题引入暴力解法优先队列优化解法单调队列(正片开始)单调队列解决例题总结概念顾名思义,单调队列的重点分为 “单调” 和 “队列”,“单调” 指的是元素的的 “规律”——递增(或递减),“队列” 指的是元素只能从队头和队尾进行操作(注意,是可以在队尾进行操作的,这和正常的队列是有一定区别的,我们待会再说为什么需要这样做。)。这种数据结构通常用于滑动窗口区间最值问题。例题引入给出一个长度为nnn的数组,编程输出每kkk个连续的数中的最大值和最小值。暴力解法我们拿到这题,最暴力的想原创 2020-08-18 20:27:13 · 414 阅读 · 0 评论