树
Tree
Mr_Kingk
这个作者很懒,什么都没留下…
展开
-
(动态可修改主席树模板:树状数组套静态主席树)洛谷P2617 Dynamic Rankings
题目描述给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令。对...原创 2019-08-07 16:50:21 · 214 阅读 · 0 评论 -
洛谷P3834 【模板】可持久化线段树 1(静态主席树模板)
题目背景这是个非常经典的主席树入门题——静态区间第K小数据已经过加强,请使用主席树。同时请注意常数优化题目描述如题,给定N个整数构成的序列,将对于指定的闭区间查询其区间内的第K小值。输入输出格式输入格式:第一行包含两个正整数N、M,分别表示序列的长度和查询的个数。第二行包含N个整数,表示这个序列各项的数字。接下来M行每行包含三个整数l, r, kl,r,k...原创 2019-07-24 20:19:00 · 226 阅读 · 0 评论 -
leetcode105. 从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树难度中等1404收藏分享切换为英文接收动态反馈给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例 1:输入: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]输出: [3,9,20,null,null,15,7]示例 2:输入: preorder = ...原创 2022-02-03 20:53:30 · 1042 阅读 · 0 评论 -
Bob‘s Poor Math(字典树:Trie)
链接:https://ac.nowcoder.com/acm/problem/202301来源:牛客网题目描述Bob's math is really poor. He even doesn't know how does `carry' works in plus operation. In his world, the `plus' operation performed like this : 9+5=4{9+5=4}9+5=4, 99+99=88{99+99=88}99+99=88, .原创 2020-08-24 21:17:10 · 373 阅读 · 0 评论 -
A Simple Problem On A Tree(树链剖分+线段树)
链接:https://ac.nowcoder.com/acm/problem/202310来源:牛客网题目描述We have met so many problems on the tree, so today we will have a simple problem on a tree.You are given a tree (an acyclic undirected connected graph) with N\mathbf{N}N nodes. The tree nodes a.原创 2020-08-24 16:51:06 · 467 阅读 · 0 评论 -
Practice for KD Tree(差分+前缀和+线段树(二维))
链接:https://ac.nowcoder.com/acm/problem/201927来源:牛客网题目描述It's time to have a break and implement something.You are given an n×nn\times nn×n matrix A{A}A. All the elements are zero initially.First, you need to perform m1m_1m1 range addition operatio.原创 2020-08-19 21:26:50 · 261 阅读 · 0 评论 -
P3758 [TJOI2017]可乐(邻接矩阵的幂:矩阵乘法&&快速幂)
题目描述加里敦星球的人们特别喜欢喝可乐。因而,他们的敌对星球研发出了一个可乐机器人,并且放在了加里敦星球的1号城市上。这个可乐机器人有三种行为: 停在原地,去下一个相邻的城市,自爆。它每一秒都会随机触发一种行为。现在给加里敦星球城市图,在第0秒时可乐机器人在1号城市,问经过了t秒,可乐机器人的行为方案数是多少?输入格式第一行输入两个正整数N,M。N表示城市个数,M表示道路个数。接下来M行每行两个整数u,v,表示u,v之间有一条道路。保证两座城市之间只有一条路相...原创 2020-08-11 17:02:43 · 514 阅读 · 0 评论 -
Grid(线段树动态开点)
链接:https://ac.nowcoder.com/acm/problem/52769来源:牛客网题目描述Bobo has n×mn \times mn×m points arranged into a matrix with n rows and m columns. The points in the intersection of the i-th row and the j-th column is labeled with (i, j).He is going to perfor.原创 2020-08-08 18:23:36 · 247 阅读 · 0 评论 -
Just h-index(主席树+二分)
链接:https://ac.nowcoder.com/acm/problem/52893来源:牛客网题目描述The h-index of an author is the largest h where he has at least h papers with citations not less than h.Bobo has published n papers with citations a1,a2,…,ana_1, a_2, \dots, a_na1,a2,…,an res.原创 2020-08-07 22:06:29 · 340 阅读 · 0 评论 -
Running Away From the Barn(可并堆:用左偏树实现)
链接:https://ac.nowcoder.com/acm/problem/24367来源:牛客网题目描述It's milking time at Farmer John's farm, but the cows have all run away! Farmer John needs to round them all up, and needs your help in the search.FJ's farm is a series of N (1 <= N <= 2..原创 2020-08-04 21:48:09 · 218 阅读 · 0 评论 -
亚特兰蒂斯(线段树+扫描线:求矩形面积并)
有几个古希腊书籍中包含了对传说中的亚特兰蒂斯岛的描述。其中一些甚至包括岛屿部分地图。但不幸的是,这些地图描述了亚特兰蒂斯的不同区域。您的朋友Bill必须知道地图的总面积。你自告奋勇写了一个计算这个总面积的程序。输入格式输入包含多组测试用例。对于每组测试用例,第一行包含整数n,表示总的地图数量。接下来n行,描绘了每张地图,每行包含四个数字x1,y1,x2,y2x1,y1,x2,y2(不一定是整数),(x1,y1)(x1,y1)和(x2,y2)(x2,y2)分别是地图的左上角位置原创 2020-05-29 21:56:40 · 585 阅读 · 1 评论 -
区间最大公约数(线段树&&树状数组)
给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l r”,表示询问 A[l],A[l+1],…,A[r] 的最大公约数(GCD)。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行表示M条指令,每条指令的格式如...原创 2020-05-05 18:37:47 · 356 阅读 · 0 评论 -
你能回答这些问题吗(线段树:求区间最大连续子段和)
给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“1 x y”,查询区间 [x,y] 中的最大连续子段和,即maxx≤l≤r≤y{∑ri=lA[i]}。2、“2 x y”,把 A[x] 改成 y。对于每个查询指令,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行每行3个整数k,x,y,k=1表示查询(此时如果x...原创 2020-05-05 16:30:41 · 203 阅读 · 0 评论 -
赤壁之战(dp&&树状数组)
给定一个长度为N的序列A,求A有多少个长度为M的严格递增子序列。输入格式第一行包含整数T,表示共有T组测试数据。每组数据,第一行包含两个整数N和M。第二行包含N个整数,表示完整的序列A。输出格式每组数据输出一个结果,每个结果占一行。输出格式为“Case #x: y”,x为数据组别序号,从1开始,y为结果。由于数据可能很大,请你输入对109+7取模后的结果。数据范...原创 2020-05-04 20:45:48 · 337 阅读 · 0 评论 -
清理班次(dp&&线段树)
农民约翰正在指挥他的N头牛进行清理工作。他将一天划分为了T个班次(1~T)。每头牛都只能在一天中的某一个时间段内进行不间断的工作。你需要帮助约翰排列出一个合理的奶牛的清理班次,使得每个班次都有奶牛在进行清理,而且动用的奶牛数量可以尽可能的少。输入格式第1行:两个空格隔开的整数N和T。第2..N+1行:第i+1行包含两个整数,分别表示第i头牛可以进行工作的开始时间和结束时间。...原创 2020-05-03 21:09:41 · 190 阅读 · 0 评论 -
树状数组
1、楼兰图腾(树状数组简介)https://blog.csdn.net/Mr_Kingk/article/details/1058824922、区间修改,单点查询:https://blog.csdn.net/Mr_Kingk/article/details/1058936073、区间查询&&区间修改:https://blog.csdn.net/Mr_Kingk/articl...原创 2020-05-02 20:53:08 · 166 阅读 · 0 评论 -
一个简单的整数问题2(树状数组:区间查询&&区间修改)
给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“C l r d”,表示把 A[l],A[l+1],…,A[r] 都加上 d。2、“Q l r”,表示询问 数列中第 l~r 个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于...原创 2020-05-02 20:41:24 · 338 阅读 · 0 评论 -
一个简单的整数问题(树状数组:区间修改,单点查询)
给定长度为N的数列A,然后输入M行操作指令。第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。第二类指令形如“Q X”,表示询问数列中第x个数的值。对于每个询问,输出一个整数表示答案。输入格式第一行包含两个整数N和M。第二行包含N个整数A[i]。接下来M行表示M条指令,每条指令的格式如题目描述所示。输出格式对于每个询问,输出一个整数表示答案。...原创 2020-05-02 18:40:56 · 279 阅读 · 0 评论 -
楼兰图腾(树状数组)
在完成了分配任务之后,西部314来到了楼兰古城的西部。相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。西部314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了N个点,经测量发现这N个点的水平位置和竖直位置是两两不同的。西部314认为这幅壁画所包含的信息与这N个点的相对位置...原创 2020-05-01 21:24:35 · 343 阅读 · 0 评论 -
树形地铁系统(树的最小表示)
一些主要城市拥有树形的地铁系统,即在任何一对车站之间,有且只有一种方式可以乘坐地铁。此外,这些城市大多数都有一个中央车站。想象一下,你是一名在拥有树形地铁系统的城市游玩的游客,你想探索该城市完整的地铁线路。你从中央车站出发,随机选择一条地铁线,然后乘坐地铁行进。每次到达一个车站,你都将选择一条尚未乘坐过的地铁线路进行乘坐。如果不存在未乘坐过的线路,则退回到上一个车站,再做选择。...原创 2020-04-04 21:07:32 · 463 阅读 · 0 评论 -
P3379 【模板】最近公共祖先(LCA)
题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数N、M、S,分别表示树的结点个数、询问的个数和树根结点的序号。接下来N-1行每行包含两个正整数x、y,表示x结点和y结点之间有一条直接连接的边(数据保证可以构成树)。接下来M行每行包含两个正整数a、b,表示询问a结点和b结点的最近公共祖先。输出格式输出包含M行,每行包含一个...原创 2019-08-15 11:16:16 · 272 阅读 · 0 评论 -
线段树的区间修改模板(含懒惰标记)
#include <bits/stdc++.h>#define int long longconst int maxn=1e5+5;using namespace std;typedef struct tree{ int l,r,sum,add,len;//l,r区间左右界,sum是维护的区间和,add是懒惰标记,len是区间长度} tr;tr tree[max...原创 2019-08-14 17:36:05 · 325 阅读 · 0 评论 -
洛谷P3384 【模板】树链剖分
题目描述如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z操作2: 格式: 2 x y 表示求树从x到y结点最短路径上所有节点的值之和操作3: 格式: 3 x z 表示将以x为根节点的子树内所有节点值都加上z操作4: 格式: 4 x 表示求以x为根节点的子树...原创 2019-08-14 17:28:24 · 257 阅读 · 0 评论 -
树的遍历(根据后序和中序建树并输出层次遍历序列)
给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 ...原创 2020-01-19 15:30:51 · 2173 阅读 · 0 评论 -
搜索树判断
对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。输入格式:输入的第一行包含一个正整数N(≤1000),第二行包含N个整数...原创 2020-01-19 11:28:29 · 771 阅读 · 0 评论 -
Highway(用dfs求树的直径)
链接:https://ac.nowcoder.com/acm/contest/1109/H来源:牛客网题目描述In ICPCCamp there were n towns conveniently numbered with 1,2,…,n1, 2, \dots, n1,2,…,nconnected with (n - 1) roads.The i-th road connect...原创 2019-10-05 00:58:13 · 548 阅读 · 1 评论 -
Greedy Sequence(线段树动态维护区间最大值)
You're given a permutationaaof lengthnn(1 \le n \le 10^51≤n≤105).For eachi \in [1,n]i∈[1,n], construct a sequences_isiby the following rules:s_i[1]=isi[1]=i; The length ofs_isiisnn, ...原创 2019-09-06 16:43:52 · 564 阅读 · 0 评论 -
序列(seq)(线段树的区间修改)
问题 B: 序列(seq)时间限制:1 Sec内存限制:128 MB题目描述给出一个长度为n的序列a,每次对序列进行一下的某一个操作。输入第一行两个整数n,q表示序列长度和操作个数。接下来一行n个数,表示序列a。接下来q行表示操作,其格式见题目描述。输出见题目描述。样例输入复制样例数据5 21 2 3 4 52 1 3...原创 2019-06-11 18:15:41 · 294 阅读 · 0 评论 -
I Hate It (线段树维护区间最大值+单点修改)
这道题用到了线段树,之前看了相关的视频,对算法思路基本理解,但代码实现还有些困难,后来问了学长,自己又研究了一波,最后终于搞明白了。线段树视频地址:https://www.bilibili.com/video/av44354587点击此处查看题目线段树如图所示:完整代码:#include <iostream>#include <cstdio>#i...原创 2019-06-01 16:23:52 · 410 阅读 · 0 评论