数据结构
_BOSS_
这个作者很懒,什么都没留下…
展开
-
【详解】二叉查找树BST与平衡树Treap
二叉查找树BST与平衡树Treap一、二叉查找树1.概念二叉查找树(简称BST),是满足以下条件的二叉树:树上每一个节点都有一个权值;树上任意一个节点x,若左子树不为空,则左子树上所有节点权值均小于x的权值;树上任意一个节点x,若右子树不为空,则左子树上所有节点权值均大于x的权值;2.二叉查找树的操作二叉查找树的建立struct BST{ int l,r; int val;}s[SIZE];二叉查找树的查找二叉查找树的插入二叉查找树找最值二叉查找树的原创 2020-05-26 15:36:07 · 820 阅读 · 0 评论 -
【题解】求后序遍历(二叉树遍历,递归)
题面【题目描述】给出二叉树的先序遍历和中序遍历,求后序遍历。【输入】输入共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。字符串长度小于100100100。【输出】输出仅一行,表示树的后序遍历序列。【样例输入】abdecdbeac【样例输出】debca算法分析二叉树有三种遍历方法:先序遍历:(1)访问根节点;...原创 2020-04-15 17:39:45 · 3421 阅读 · 1 评论 -
树状数组模板程序
#include<iostream>#include<cstring>#include<cstdio> #include<vector>#define N 500100using namespace std;int n,m,c[N];int lowbit(int x){ return x&(-x);}void up...原创 2020-03-27 17:38:22 · 153 阅读 · 0 评论 -
【题解】「USACO 2007 Jan」Balanced Lineup(ST表)
题面【题目描述】农夫 JohnJohnJohn 的N(1<=N<=50,000)N(1 <= N <= 50,000)N(1<=N<=50,000)头牛总是按同一序列排队. 有一天,$ John$ 决定让一些牛们玩一场飞盘比赛. 他准备找一群在队列中位置连续的牛来进行比赛. 但是为了避免水平悬殊,牛的身高不应该相差太大. $John 准备了准备了准备了Q (...原创 2020-03-27 14:56:58 · 406 阅读 · 0 评论 -
【题解】「NOI2015」软件包管理器(述链剖分)
题面【题目描述】【输入】【输出】输出文件包括 qqq行。 输出文件的第iii行输出 111 个整数,为第i 步操作中改变安装状态的软件包数。【样例输入】7 0 0 0 1 1 5 5 install 5 install 6 uninstall 1 install 4 uninstall 0 【样例输出】31323算法分析述链剖分模板题目。题目...原创 2020-03-23 11:35:13 · 360 阅读 · 0 评论 -
【题解】「HAOI2015」树上操作(述链剖分)
题面【题目描述】有一棵点数为NNN 的树,以点 111为根,且树点有边权。然后有MMM个操作,分为三种:操作 111 :把某个节点 xxx 的点权增加 aaa 。操作 222 :把某个节点 xxx 为根的子树中所有点的点权都增加 aaa 。操作 333 :询问某个节点 xxx 到根的路径中所有点的点权和。【输入】第一行包含两个整数 N,MN, MN,M 。表示点数和操作数。接下来一行...原创 2020-03-23 09:10:54 · 272 阅读 · 0 评论 -
【题解】「ZJOI2008」树的统计(树链剖分)
题面【题目描述】一棵树上有nnn个节点,编号分别为111到nnn,每个节点都有一个权值www。我们将以下面的形式来要求你对这棵树完成一些操作:I.I.I. CHANGECHANGECHANGE uuu ttt : 把结点uuu的权值改为tttII.II.II. QMAXQMAXQMAX uuu vvv: 询问从点uuu到点vvv的路径上的节点的最大权值III.III.III. QSUMQ...原创 2020-03-20 15:53:41 · 530 阅读 · 0 评论 -
【题解】「USACO 2008 FEB」Hotel(线段树)
题面【题目描述】奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及明媚的阳光。作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的旅馆住宿。这个巨大的旅馆一共有N(1<=N<=50,000)N (1 <= N <= 50,000)N(1<=N<=50,000)间客房,它们在同一层楼中顺次一字排开,在任何一个房间里,只需要拉开窗帘,就能见到波...原创 2020-03-06 18:34:31 · 604 阅读 · 0 评论 -
【详解】线段树扫描线
题目「VOJ1056」图形面积桌面上放了NNN个平行于坐标轴的矩形,这NNN个矩形可能有互相覆盖的部分,求它们组成的图形的面积。【输入】有多组测试数据。每组测试数据输入第一行为一个数NNN,表示矩形的数量。下面NNN行,每行四个整数,分别表示每个矩形的左下角和右上角的坐标,坐标范围为–108–10^8–108到10810^8108之间的整数。当N==0N==0N==0时,测试文件结束...原创 2020-03-06 18:16:46 · 709 阅读 · 0 评论 -
【题解】「AHOI2009」维护序列(线段树)
题面【题目描述】老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为NNN的数列,不妨设为a1,a2,…,aNa_1,a_2,…,a_Na1,a2,…,aN。有如下三种操作形式:(1)(1)(1)把数列中的一段数全部乘一个值;(2)(2)(2)把数列中的一段数全部加一个值;(3)(3)(3)询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模PPP的值。...原创 2020-03-03 12:47:30 · 1053 阅读 · 2 评论 -
【题解】[TJOI 2018] 数学计算(线段树)
题面【题目描述】小豆现在有一个数x,初始值为1. 小豆有Q次操作,操作有两种类型:1 m: x = x * m ,输出 x%mod;2 pos: x = x / 第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1 的操作至多会被除一次),输出x%mod【输入】一共有t组输入(t ≤ 5)对于每一组输入,第一行是两个数字Q, mod(Q ≤ 100000, ...原创 2020-03-02 12:52:46 · 264 阅读 · 0 评论 -
【题解】「POJ3468」A Simple Problem with Integers(线段树)
题面【题目描述】你有一些整数,和一些操作与询问需要处理【输入】第一行:NNN,QQQ,1≤N,Q≤1000001 ≤ N,Q ≤ 1000001≤N,Q≤100000.第二行:NNN个整数, A1,A2,...,AN.,−1000000000≤Ai≤1000000000A_1, A_2, ... , A_N.,-1000000000 ≤ A_i ≤ 1000000000A1,A2,....原创 2020-02-29 00:57:46 · 698 阅读 · 0 评论 -
【题解】「HDU1166」敌兵布阵(线段树)
题面【题目描述】有nnn个营地,已知每个营地的人数,有四条命令:(1)Add(1) Add(1)Add iii jjj,iii和jjj为正整数,表示第iii个营地增加jjj个人(jjj不超过303030)(2)Sub(2)Sub(2)Sub iii jjj ,iii和jjj为正整数,表示第iii个营地减少jjj个人(jjj不超过303030);(3)Query(3)Query(3)Que...原创 2020-02-29 00:48:26 · 309 阅读 · 0 评论 -
【题解】[ IOI 2001] Mobile Phones(二维树状数组)
题面【题目描述】假设TampereTampereTampere区域的第四代手机基地站运行如下。该区域被划分为一些正方形(方阵)。这些正方形构成一个SSS╳SSS的矩阵,矩阵行和列的编号从000到S−1S-1S−1。每个正方形包含一个基地站。由于一个手机可能从一个正方形移动到另一个正方形,或者手机可能开机或关机,所以,在一个正方形内正在使用的手机数目是随时变化的。有时,每个基地站需要将正在使用的...原创 2020-02-21 17:07:08 · 4601 阅读 · 1 评论 -
【题解】[POJ 3321 ]苹果树(dfs序列+树状数组)
题面【题目描述】有一棵苹果树,苹果产量特别高,这棵树有nnn个分叉点,并且它们之间有树枝相连,将这些分叉点编号,并且树根一直都是111,苹果会长在枝条的分叉点上面,且不会有两个苹果结在一起。你想要对它进行统计,但是有些小朋友会摘掉其中的一些苹果,而有的时候,苹果又会长出来。于是我们定义两种操作:CCC xxx,表示编号为xxx的分叉点的状态被改变(原来有苹果的话,就被摘掉,原来没有的话,就...原创 2020-02-15 21:28:00 · 385 阅读 · 0 评论 -
【详解】dfs序
dfsdfsdfs序是将树形结构转换为线性结构的一种方式。dfs序dfsdfsdfs序: 指每个节点在dfs深度优先遍历中的进出栈的时间序列。定义三个数组:inn[x]inn[x]inn[x]:表示结点xxx入栈的时间戳。outt[x]outt[x]outt[x]:表示结点xxx出栈的时间戳,特殊的,出栈不算时间。id[x]id[x]id[x]:表示结点x在新的线性序列中的下标,id[...原创 2020-02-15 21:23:54 · 636 阅读 · 0 评论 -
【题解】[POJ 2352] Stars(树状数组)
题面【题目描述】天文学家常常检查星星地图,星星都有它的x,y坐标,星星的等级的是左下方星星数量决定,包含正左和正下。例如,看看上面的星图。星星555的等级为333 (由星星111、222和444决定的)。星星222的等级为111(由星星111决定的)。在这张地图上0级的星星有一颗,111级的星星有两颗,222级的星星有一颗,333级的星星有一颗,你要编写一个程序,计算每个等级的星星的数量...原创 2020-02-15 13:23:24 · 315 阅读 · 0 评论 -
【题解】逆序对(树状数组)
题面【题目描述】给定一个序列a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an,如果存在i<ji < ji<j并且ai>aja_i>a_jai>aj,那么我们称之为逆序对,求逆序对的数目。【输入】第一行为nnn,表示序列长度,接下来的nnn行,第n+1n+1n+1行表示序列中的第iii个数。【输出】所有逆序对总数...原创 2020-02-15 11:33:36 · 427 阅读 · 0 评论 -
【详解】树状数组
目录:解决问题总结问题【问题描述】给定nnn个数a[1],a[2],a[3],...,a[n]a[1],a[2],a[3],...,a[n]a[1],a[2],a[3],...,a[n],现在有下面两种操作:(1)(1)(1)询问区间 [x,y][ x , y ][x,y] 的和,并输出。(2)(2)(2)将下标为xxx的数增加yyy。一共进行mmm次操作。1≤n,m≤10000...原创 2020-02-11 12:48:44 · 409 阅读 · 0 评论