随笔分类 -  数据结构—线段树

摘要:1018: [SHOI2008]堵塞的交通traffic 链接 分析: 用线段树维护区间的四个端点的联通情况,然后查询的时候,把所有覆盖到的区间合并起来即可。 六种情况左上到右上(左边到右边的情况)……,左上到左下(同一侧相互到达的情况)…… 同一侧相互到达的情况,查询[l,r]是查的不完全。因为还 阅读全文
posted @ 2018-12-11 14:46 MJT12044 阅读(191) 评论(0) 推荐(0)
摘要:C. Max Mex https://codeforces.com/contest/1083/problem/C 题意: 一棵$n$个点的树,每个点上有一个数(每个点的上的数互不相同,而且构成一个0~n-1的排列),要求找到一条路径,使得路径的$mex$最大。 分析: 问题转化为,查询一个a,0~a 阅读全文
posted @ 2018-12-11 14:28 MJT12044 阅读(569) 评论(1) 推荐(0)
摘要:3110: [Zjoi2013]K大数查询 https://lydsy.com/JudgeOnline/problem.php?id=3110 分析: 整体二分+线段树。 两种操作:区间加入一个数,区间询问第k大值。 如果只有一种操作,我们可以二分答案x,然后把大于x的都加入到线段树中去(区间[l, 阅读全文
posted @ 2018-12-07 11:12 MJT12044 阅读(193) 评论(0) 推荐(0)
摘要:4826: [Hnoi2017]影魔 https://lydsy.com/JudgeOnline/problem.php?id=4826 分析: 莫队+单调栈+st表。 考虑如何O(1)加入一个点,删除一个点,类似bzoj4540。然后就可以莫队了。复杂度$O(n\sqrt n)$ 代码: 1 #i 阅读全文
posted @ 2018-12-05 19:48 MJT12044 阅读(376) 评论(2) 推荐(1)
摘要:#2585. 「APIO2018」新家 https://loj.ac/problem/2585 分析: 线段树+二分。 首先看怎样数颜色,正常的时候,离线扫一遍右端点,每次只记录最右边的点,然后查询左端点,这里不太行。这里只需要统计是否全出现过,pre[i]为这个颜色的上一个位置,那么这也就说明了p 阅读全文
posted @ 2018-12-04 14:08 MJT12044 阅读(306) 评论(0) 推荐(1)
摘要:1109: [POI2007]堆积木Klo https://lydsy.com/JudgeOnline/problem.php?id=1109 分析: 首先是dp,f[i]表示到第i个的最优值,f[i]=f[j]+1,(j<i,a[j]<a[i],j-a[j]<i-a[i]),三维偏序,可以cdq+ 阅读全文
posted @ 2018-11-30 10:25 MJT12044 阅读(181) 评论(0) 推荐(0)
摘要:B. The Bakery http://codeforces.com/contest/833/problem/B 题意: 将一个长度为n的序列分成k份,每份的cost为不同的数的个数,求最大cost的和。1≤n≤35000,1≤k≤50 分析: dp[i][j]表示前i个数,分了j份。dp[i][ 阅读全文
posted @ 2018-10-15 15:33 MJT12044 阅读(1263) 评论(0) 推荐(0)
摘要:D. Bash and a Tough Math Puzzle http://codeforces.com/contest/914/problem/D 题意: 单点修改,每次询问一段l~r区间能否去掉小于等于1个数,使gcd为x 分析: 线段树。 线段树二分。如果一边的gcd不是x,那么递归这一边, 阅读全文
posted @ 2018-10-01 22:37 MJT12044 阅读(305) 评论(0) 推荐(0)
摘要:Autostrady https://szkopul.edu.pl/problemset/problem/f2dSBM7JteWHqtmVejMWe1bW/site/?key=statement 题意: 首先给定一棵树,除了n-1条树边以外,还有m条非树边。每次询问两个点的满足以下条件的路径条数。 阅读全文
posted @ 2018-09-27 19:21 MJT12044 阅读(186) 评论(0) 推荐(0)
摘要:2212: [Poi2011]Tree Rotations https://www.lydsy.com/JudgeOnline/problem.php?id=2212 分析: 线段树合并。 首先对每个节点建立一棵权值线段树,然后遍历整棵树,从叶子节点开始合并,每次合并两个节点的主席树,判断是否交换这 阅读全文
posted @ 2018-09-27 15:41 MJT12044 阅读(158) 评论(0) 推荐(0)
摘要:3693: 圆桌会议 https://www.lydsy.com/JudgeOnline/problem.php?id=3693 分析: Hall定理+线段树。 如果将桌子放到左边,每组的人拆开放到右边,就成了二分图匹配问题,问是否存在完美匹配。 Hall定理:设二分图中G=<V1,V2,E>中 | 阅读全文
posted @ 2018-09-14 19:09 MJT12044 阅读(378) 评论(0) 推荐(0)
摘要:5312: 冒险 https://www.lydsy.com/JudgeOnline/problem.php?id=5312 分析: 考虑区间and,or一个数,其实是让一段区间的一些二进制位上成为0,或者1。 先考虑or:对一段区间or x,它所能更新的二进制位就是x的二进制位是1的位。在线段树上 阅读全文
posted @ 2018-09-13 11:19 MJT12044 阅读(304) 评论(0) 推荐(0)
摘要:3155: Preprefix sum https://www.lydsy.com/JudgeOnline/problem.php?id=3155 分析: 区间修改,区间查询,线段树就好了。 然后,这题有树状数组! 代码: 线段树620ms 1 /* 2 一个数修改影响后面的数,使后面的数都增加或者 阅读全文
posted @ 2018-07-08 20:33 MJT12044 阅读(168) 评论(0) 推荐(0)
摘要:4364: [IOI2014]wall砖墙 链接 分析: 线段树,维护一个最大值,一个最小值。 代码: 阅读全文
posted @ 2018-06-30 14:55 MJT12044 阅读(253) 评论(0) 推荐(0)
摘要:3211: 花神游历各国 链接 分析: 1e9的,开5次方,就变成了1,所以暴力开方即可,记录一个tag,当前节点是否全为1或者0。 记一下各种zz的bug:1、开方后可能为0,不只是1,所以判断<=1,不是==1;2、开longlong,每个节点1e9,加起来就比1e9大了。3、读入的时候也可以判 阅读全文
posted @ 2018-06-29 21:43 MJT12044 阅读(168) 评论(0) 推荐(0)
摘要:4034: [HAOI2015]树上操作 链接 思路: 树链剖分。操作:单点修改,路径查询,子树修改。 代码: 阅读全文
posted @ 2018-05-20 11:10 MJT12044 阅读(211) 评论(0) 推荐(0)
摘要:链接 思路 bug漫天飞。。。 维护一颗线段树,支持区间赋值,和区间异或。因为会处理到一些方括号还是圆括号的问题,所以对于每一个下标都乘2,假设中间有一个.5即可,都变成了方括号,输出在处理一下。 U [l,r]赋值为1 I [0,l-1],[r+1,n]赋值为0 D [l,r]区间涂0 C [0, 阅读全文
posted @ 2018-04-17 15:23 MJT12044 阅读(186) 评论(0) 推荐(0)
摘要:链接 思路: 发现总的区间长度是不固定的,线段树是无法每次增加一个位置的,所以直接开始时默认区间长度是n(最多插入n个数),所以直接建线段树维护即可。 另一种思路:维护一个单调栈,从上往下保证递增,并且记录栈中每个元素的位置,每次询问寻找栈中最靠下的,位置满足条件的元素。 代码 线段树:992ms 阅读全文
posted @ 2018-04-10 21:50 MJT12044 阅读(158) 评论(0) 推荐(0)
摘要:Kth number Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 13726 Accepted Submission(s): 4160 Pr 阅读全文
posted @ 2018-02-11 16:30 MJT12044 阅读(174) 评论(0) 推荐(0)
摘要:P3373 【模板】线段树 2 题目描述 如题,已知一个数列,你需要进行下面三种操作: 1.将某区间每一个数乘上x 2.将某区间每一个数加上x 3.求出某区间每一个数的和 输入输出格式 输入格式: 第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。 第二行包含N个用空格分隔 阅读全文
posted @ 2018-02-10 07:30 MJT12044 阅读(204) 评论(0) 推荐(0)