数据结构
破晓③
这个作者很懒,什么都没留下…
展开
-
HDU - 4027 Can you answer these queries? (线段树)
Can you answer these queries?Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 18689 Accepted Submission(s): 4407Problem Descriptio原创 2017-08-20 22:13:35 · 202 阅读 · 0 评论 -
牛客国庆集训派对Day6 I 清明梦超能力者黄YY(树链剖分 + 线段树)
题目链接:https://www.nowcoder.com/acm/contest/206/I题目大意:中文题面,自行自会~ —,—。题目思路:题目要求在树上进行一条链的更新操作,很直观就能想到用树链剖分来做。本题要求的是每个结点倒数第k次被染色时,是被染成了什么颜色,由于这个k是固定的,所以我们可以用线段树来维护每个点被更新的次数,维护一条链上的节点被更新过的次数的最大次数。当一个区间...原创 2018-10-06 20:54:15 · 322 阅读 · 0 评论 -
Bubble Cup 11 - Finals [Online Mirror, Div. 2] A. AI robots(线段树动态开点)
题目链接:http://codeforces.com/contest/1046/problem/A题目大意:有n个机器人排成一排在一条直线上,第i个机器人在,同时它可以看到在的机器人,它的智商是。如果两个机器人可以相互看见对方,同时它们的智商差值小于等于k的话,它们就会发生一次谈话。现在问你这n个机器人会发生几次谈话。题目思路:首先我们来考虑如何知道两个机器人是否能互相看见。我们可...原创 2018-09-23 17:15:37 · 998 阅读 · 0 评论 -
ACM-ICPC 2018 青岛赛区网络预赛 ZOJ - 4048 Red Black Tree(LCA)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5807题目大意:给定一棵n个节点的树,节点1为根节点,树上有m个节点是红色的,剩下的节点都是黑色的。定义树上每个节点的花费为当前节点到达最近的为红色的祖先的距离。接下来有q次查询,每次查询给出k个节点,你允许将树上对的任意一个节点染成红色(仅对这次查询有效),现在要...原创 2018-09-17 20:45:48 · 603 阅读 · 0 评论 -
ACM-ICPC 2018 焦作赛区网络预赛 E. Jiu Yuan Wants to Eat(树剖 + 线段树)
题目链接:https://nanti.jisuanke.com/t/31714题目大意:给出一棵n个节点的树,每个节点都有权值。接下来进行m次操作,每次操作有以下四种可能:1 u v x : 将节点u到节点v这条链的路径上的点得权值都乘上x2 u v x:将节点u到节点v这条链的路径上的点得权值都加上x3 u v :将节点u到节点v这条链的路径上的点得权值都进行二进制取反4 u...原创 2018-09-17 18:26:08 · 260 阅读 · 0 评论 -
ACM-ICPC 2018 沈阳赛区网络预赛 J. Ka Chang(树状数组+分块)
题目链接:https://nanti.jisuanke.com/t/31451题目大意:现在给出一棵包含n个结点的有根树,根节点为1,且根节点的深度为0。接下来进行q次操作,每次操作有以下两种操作:1 L x :将深度为L的结点的值加上x;2 x :查询x的子树所有结点的权值和。题目思路:考虑到要查询子树,我们很容易就能想到用dfs序 + 树状数组来解决。对于修改操作,如果暴力去更...原创 2018-09-10 16:07:11 · 248 阅读 · 0 评论 -
ACM-ICPC 2017 西安 A. XOR(线段树思想合并线性基)
题目大意:给出一个包含n个元素的数组A以及一个k,接下来进行q次询问,每次询问给出 l 和 r ,要你求出从A[l] , A[l+1] , A[l + 2],...,A[r]中任选出若干个数异或起来的值val,使得 k | val 最大,输出这个最大值。题目思路:既然是要使得k | val得到的值最大,那么val必然是k这个数上二进制位为0的位置为1的数,同时1的位数要尽可能的多。这样我们就可...原创 2018-09-12 16:58:54 · 1175 阅读 · 0 评论 -
Codeforces Round #506 (Div. 3) C. Maximal Intersection (线段树)
题目链接:http://codeforces.com/contest/1029/problem/C题目大意:给出n条线段,第 i 条线段的左端点为 li ,右端点为 ri。现在你可以将这n条线段中的一条删去,问你要删去哪条线段才能使被剩下的n-1条线段所覆盖的区域尽可能的长。题目思路:线段覆盖的话,我们可以考虑用线段树来维护,由于本题的 li 和 ri 都可以达到1e9,所以我们要先离散化...原创 2018-09-07 21:25:00 · 212 阅读 · 0 评论 -
牛客多校第五场 H subseq (线段树)
链接:https://www.nowcoder.com/acm/contest/143/H来源:牛客网 题目描述Kanade has an array a[1..n] , she define that an array b[1..m] is good if and only if it satisfy the following conditions: 1<=b[i]&l...原创 2018-08-03 10:01:22 · 384 阅读 · 0 评论 -
URAL - 1989 Subpalindromes (字符串hash + 线段树区间合并)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1989题目大意:给出一个长度为n的字符串S,接下来进行n次操作。操作分为修改和查询两种,每次修改操作给出一个整数 i 和一个字符c,表示将第 i 位的字符变成字符c;每次查询操作给出两个整数 j 和 k ,询问字符串S的子串S[j,j+1,j+2,...,k]是否为回文串。题目思路...原创 2018-10-09 17:16:39 · 225 阅读 · 0 评论 -
HDU - 6070 Dirt Ratio (二分 + 线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6070题目大意:给定一个序列a,对于任何一个区间 [l,r],它的“Dirt Ratio”值为区间内不同元素的个数除以区间长度。现在要你求出序列a中哪个区间的“Dirt Ratio”值最小,输出最小值。题目思路:由于是要找最小值,我们考虑用二分来找答案。假设当前二分的答案的值为 x ,如果这个序...原创 2018-10-09 21:23:22 · 267 阅读 · 0 评论 -
HDU - 5367 digger(线段树区间合并 + 动态开点)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5367题目大意:一开始有n座高度为 r 的山峰(编号为1~n),接下来进行q次操作,每次操作可以使得编号在[l ,r]内的山峰的高度改变d,每次操作之后,询问有多少座山峰满足中间一段为连续等高的山峰,同时严格比这些连续的山峰的左边和右边的山峰要高。(编号为1的山峰的左边和编号为n的山峰右边默认为无限...原创 2019-01-13 20:33:47 · 310 阅读 · 0 评论 -
洛谷 P5105 不强制在线的动态快速排序 (线段树区间合并)
题目链接:https://www.luogu.org/problemnew/show/P5105题目大意:中文题,就不解释了-,-题目思路:首先,对于求解,我们通过打表可以知道,求解[1,n]区间的异或和,有如下的规律:当n%4 == 0 时,等于1;当n%4 == 1 时,等于2×(n-1);当n%4 == 2 时,等于3;当n%4 == 3时,等于2×n。那么区间 ...原创 2019-01-02 14:16:43 · 280 阅读 · 0 评论 -
Educational Codeforces Round 56 (Rated for Div. 2) E. Intersection of Permutations(分块 + 树状数组)
题目链接:https://codeforces.com/contest/1093/problem/E题目大意:给出两个1~n的排列 a 和 b;对这两个排列进行如下两种操作:1 la ra lb rb:查询排列 a 的区间 [la,ra] 与排列 b 的区间 [lb,rb]内有多少个相同的数; 2 x y:将b[x] 与 b[y]的值进行交换。题目思路:·由于更新操作中只会对排...原创 2018-12-19 12:00:57 · 283 阅读 · 0 评论 -
HDU-4605 Magic Ball Game(树状数组+离线操作)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4605题目大意:有一棵n个节点的有根树。每个节点都有一个权值w,同时树中的节点,要么没有儿子节点,要么就刚好有两个儿子节点。现在要在根节点放一个权值为X的球。当球落到节点 i 的时候,球都会有如下三种情况:1、如果X=w[i]或者 i 没有儿子节点的话,球就会停在这个节点,不继续往下落;2、...原创 2018-12-28 14:02:17 · 254 阅读 · 0 评论 -
HDU - 5957 Query on a graph (bfs序 + 线段树 + 分类大讨论)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5957题目大意:给出一个n个点n条边的图,保证图中没有自环和重边,图中的结点的初始权值为0。接下来进行q次操作,每次操作有以下两种:MODIFY u k d:将与点u的距离小于等于k的点的权值加上d;QUERY u k:查询所有与点u的距离小于等于k的点的权值和。题目思路:由于给出的图是...原创 2018-12-14 17:30:38 · 307 阅读 · 1 评论 -
BZOJ-3123: [Sdoi2013]森林(主席树 + LCA + 启发式合并)
题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3123题目大意:给出一个有n个节点的森林,接下来有m次操作,每次操作有以下两种:1、Q x y k :询问节点 x 到节点 y 这条链上的点的第 k 大的权值是多少。(x和y保证在一个联通块内)2、L x y : 在节点 x 和节点 y 之间连一条边。(x和y保证不在一个联通...原创 2018-11-11 14:12:09 · 369 阅读 · 0 评论 -
Bubble Cup 11 - Finals [Online Mirror, Div. 1] D. Interstellar battle (bfs序 + 期望 + 树状数组)
题目链接:http://codeforces.com/contest/1045/problem/D题目大意:有一棵n个结点的树,编号为 i 的结点都有一个属性p[i],表示 i 这个结点有p[i]的概率会消失。接下来有q次操作,每次操作会把结点u的p[u]值修改为一个新的值np,在每次修改之后,要你求出在这次修改之后,这个树的会形成的联通块的个数的期望。题目思路:由于可能会消失若干个点,所...原创 2018-11-05 19:33:46 · 349 阅读 · 0 评论 -
HDU - 5381 The sum of gcd(离线处理 + 线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5381题目大意:给出一个长度为 n 的数组a,现在有q次询问,每次询问给出一个区间 [L,R],要你求出这个区间内所有子区间的gcd之和,即求。题目思路:根据gcd的性质,以L为起点,终点小于等于R的子区间所得到的不同的gcd个数不超过个。所以对于一开始给出的每一个值a[i],我们就可以维护出以...原创 2018-11-01 19:20:22 · 290 阅读 · 0 评论 -
牛客多校第五场 I vcd(树状数组)
链接:https://www.nowcoder.com/acm/contest/143/I来源:牛客网 题目描述Kanade has an infinity set H contain all of sets such as {(x,y)|x>=a,l<=y<=r} (a,l,r are arbitrary real numbers)A point set S ...原创 2018-08-03 09:41:41 · 358 阅读 · 0 评论 -
牛客多校第五场 F take(期望+线段树)
链接:https://www.nowcoder.com/acm/contest/143/F来源:牛客网 题目描述Kanade has n boxes , the i-th box has p[i] probability to have an diamond of d[i] size.At the beginning , Kanade has a diamond of 0 size...原创 2018-08-02 20:48:50 · 525 阅读 · 0 评论 -
BZOJ 3531 旅行 (树链剖分 + 线段树动态开点)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3531;题目大意:中文题就不解释题意了~(-,-)题目思路:这种树上两点链上查询的题目一眼就是树链剖分了,但是由于是要查询一条链上相同宗教的值,所以就不好用普通的线段树去维护,一开始是想开C棵线段树,最后理智还是战胜了冲动。去查题解,才发现线段树还有动态开点这种操作。我们正常的线原创 2018-01-28 13:13:42 · 239 阅读 · 0 评论 -
BZOJ 4034 树上操作(树链剖分 + 线段树)
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=4034;题目大意:有一棵以1为根节点的树,每个节点上都有权值,接下来有m次操作,每次操作有三种操作:1 x a :令x节点的权值增加a;2 x a :令以x为根节点的子树上所有节点的权值都增加a;3 x :查询从x到根节点1的所有节点的权值和。题目思路:刚刚开始学树链剖分原创 2018-01-27 12:02:51 · 251 阅读 · 0 评论 -
树链剖分 简单讲解
如果我们想对一棵树上一个节点到另一个节点的路径进行求和,求极值,修改等操作,单单借助线段树是远远不够的,这个时候我们就需要借用树链剖分的帮助。树链剖分,顾名思义,树链,指的是树上的路径,剖分就是把树上的各条路径分为重链,轻链。套用卿学姐的话,树链剖分其实就是一个对树上属性进行hash的一个过程,将树型结构hash成链式结构,再将这些链放至线段树,树状数组等数据结构来解决问题。学习树链剖原创 2018-01-29 14:29:14 · 279 阅读 · 0 评论 -
Codeforces Round #442 (Div. 2) E. Danil and a Part-time Job (dfs序 + 线段树)
题目链接:http://codeforces.com/contest/877/problem/E;题目大意:有一棵以1为根节点,n个节点的树,每个节点上都有一盏灯,一开始告诉你各个节点上的灯是否亮着。接下来有q次操作,操作分为如下两种:1、pow v : 使得以v为根节点的子树中的节点开着的灯关掉,关着的灯开起来;2、get v : 查询以v为根节点的子树中有多少个节点的灯是亮着的。原创 2018-01-23 12:32:37 · 229 阅读 · 0 评论 -
Codeforces Round #452 (Div. 2) E. Segments Removal(并查集 + 优先队列)
题目链接:http://codeforces.com/contest/899/problem/E;题目大意:给你一个长度为 n 的数组,每次操作只能消去数组中最长连续的数,问消去整个数组需要操作几次。题目思路:一开始是想用线段树维护,但是由于太鶸了维护不动。。。后来想着用并查集维护每个连续数集合的左端点和右端点,再用优先队列来找最长的集合,经历了无数次的WA,TLE,MLE(虽然至今不知道原创 2018-01-22 12:02:59 · 228 阅读 · 0 评论 -
UVALive - 4730 Kingdom(并查集 + 线段树区间更新)
题目链接:http://https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2731;题目大意:在一个平面上有n个城市,初始时的城市之间没有任何双向道路相连。你的任务是依次执行以下两种指令:1、road A B:在城市A和城市B之间连接一原创 2017-10-12 21:03:51 · 437 阅读 · 0 评论 -
HDU - 4553 约会安排 (线段树区间合并)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4553题目思路:本题就是一个线段树的区间合并,定义三个懒惰标记:屌丝标记,女神标记,学习标记,三个的优先级为学习 > 女神 > 屌丝,更新时按照这个优先级更新即可,查询时,屌丝就直接查看屌丝区间是否有空闲时间,女神优先看屌丝区间和女神区间是否有空闲时间,否则就覆盖已有的屌丝区间,学习就是将屌丝区间和原创 2017-08-23 10:15:03 · 553 阅读 · 0 评论 -
HDU-1540 Tunnel Warfare (线段树区间合并)
Tunnel WarfareTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9674 Accepted Submission(s): 3783Problem Description During原创 2017-08-21 12:47:30 · 310 阅读 · 0 评论 -
HDU-6278 Just h-index(2018湘潭邀请赛 C题---主席树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6278题目大意:给n个数,q次询问,每次询问给出一个区间[l,r],要你求出最大的h,使得在[l,r]这个区间内满足,有h个数的值大于等于h。题目思路:因为数据范围是1e5,如果使用暴力求解肯定是不行的,这时就要借助一个数据结构主席树。因为我们是要求出区间中是否有h个数大于等于h,那么我们可以将思路逆转...原创 2018-05-19 18:05:48 · 788 阅读 · 0 评论 -
Codeforces Round #466 (Div. 2) F. Machine Learning(带修改莫队)
题目链接:http://codeforces.com/problemset/problem/940/F题目大意:有n个元素,q次操作,有如下两种操作:1、给你一个区间[L,R],要你输出该区间的Mex值;(Mex值是区间内数字出现次数中从1开始第一个未出现的数)2、给你p和x,将a[p]的值更改成x。样例解释:10 41 2 3 1 1 2 2 2 9 91 1 11 ...原创 2018-07-18 09:12:16 · 223 阅读 · 0 评论 -
牛客多校第三场 F Sum Of Digit(线段树区间合并)
链接:https://www.nowcoder.com/acm/contest/141/F来源:牛客网 题目描述Eddy likes to play with digits. However, as you may know, Eddy is a programmer not a normal human. Thus, he likes to play with hexadecimal...原创 2018-07-27 22:47:14 · 486 阅读 · 0 评论 -
牛客多校第六场 I Team Rocket(线段树)
链接:https://www.nowcoder.com/acm/contest/144/I来源:牛客网 题目描述There are n trains running between Kanto and Johto region. Assuming the railway is a number line, the i-th train travels from coordinate l...原创 2018-08-05 10:11:16 · 309 阅读 · 0 评论 -
牛客多校第二场 J farm(二维树状数组)
链接:https://www.nowcoder.com/acm/contest/140/J来源:牛客网 题目描述White Rabbit has a rectangular farmland of n*m. In each of the grid there is a kind of plant. The plant in the j-th column of the i-th row...原创 2018-07-21 22:09:06 · 453 阅读 · 0 评论 -
牛客多校第四场 J Hash Function(拓扑排序 + 线段树建边)
链接:https://www.nowcoder.com/acm/contest/142/J来源:牛客网 题目描述Chiaki has just learned hash in today's lesson. A hash function is any function that can be used to map data of arbitrary size to data of ...原创 2018-07-28 22:30:23 · 542 阅读 · 0 评论 -
杭电多校第二场 1007 HDU-6315 Naive Operations(线段树)
Naive OperationsTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 820 Accepted Submission(s): 302Problem DescriptionIn a galaxy far, fa...原创 2018-07-26 00:10:52 · 240 阅读 · 0 评论 -
2018 UESTC Training for Data Structures 一棵复杂的线段树(线段树)
题目链接:http://qscoj.cn/#/problem/show/1919题目大意:中文题就不过多做解释了 -,-题目思路:一开始这个题是挺懵逼的,在脑海里过了一遍学过的数据结构,好像并没有那个可以满足高效率的区间排序操作的(可能是我太菜了)。去看了别人的做法之后才知道原来线段树也是可以进行排序操作的。因为这题的排序是乱序且没有规律的,所以本题很难直观地找到通解,所以我们可以考虑...原创 2018-07-19 11:00:05 · 235 阅读 · 0 评论 -
杭电多校第一场 1008 HDU-6305 RMQ Similar Sequence(笛卡尔树)
RMQ Similar SequenceTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 255535/255535 K (Java/Others)Total Submission(s): 466 Accepted Submission(s): 131Problem DescriptionChiaki has a se...原创 2018-07-24 14:22:38 · 348 阅读 · 0 评论 -
SPOJ - GSS2 Can you answer these queries II(线段树)
题目链接:https://www.spoj.com/problems/GSS2/en/题目大意:给你一个长度为n的数组,有q次询问,每次询问给出一个区间[X,Y],要你找出 MAX:{sum[i,j]} (X<=i<=j<=Y),同时区间求和的时候,如果一个数出现了多次,那么计算和的时候只计算一次。题目思路:通常我们都是用线段树来解决区间求最大子段和问题,但这题需要解决数...原创 2018-07-18 10:58:06 · 514 阅读 · 0 评论 -
CCPC-Wannafly Winter Camp Day5(div1 + div2 部分题解)
啊,来了五天(今天应该是第六天了)camp了,终于可以愉快的补题了,由于前面欠下的题目好像有点多,所以只能从后往前将题目以及题解补上了(希望能在有生之年把能补的题目补完吧,QAQ)。第五天是dls场,dls对待菜鸡还是非常友好的,div2的题目简直是快乐无比,div1的就不快乐了,但还是得把能补的题目补一补。 A.Cactus Drawdiv1版本:给你一棵仙人掌,要将所有节点放到...原创 2019-01-25 11:54:31 · 898 阅读 · 0 评论