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

摘要:正好练练熟练度。。(刷水题谋财害命QAQ) 2019.04.22 阅读全文
posted @ 2019-04-22 13:31 LuitaryiJack 阅读(168) 评论(0) 推荐(0)
摘要:唉。。又调了半天QWQ。。为何读入挂了。。。。。莫非读入是反着的????据ywy学长所言如是。。。OvO震惊 这啥骚题啊、、、还要换根、、、不过清明讲过、、、(然鹅我现在才做、、、 先随便选个点(比如选1) 树剖板子一样搞一搞 1操作 就直接改root变量的值 2操作 线段树上改 换根不影响。。 3 阅读全文
posted @ 2019-04-22 13:21 LuitaryiJack 阅读(134) 评论(0) 推荐(1)
摘要:那是上上周。。。也是重构了四遍。。。后来GG了。。。今天又拾起,搞了搞终于过了。。。 好吧就是个线段树,公式懒得推了https://www.cnblogs.com/Jackpei/p/10693561.html大致差不错 2019.04.22 唉QAQ... 阅读全文
posted @ 2019-04-22 00:56 LuitaryiJack 阅读(238) 评论(0) 推荐(0)
摘要:mdzz,这道题重构了4遍,花了一个晚上。。。 满足等差数列的条件: 1. 假设min是区间最小值,max是区间最大值,那么 max-min+k(r−l) 2. 区间相邻两个数之差的绝对值的gcd=k 3. 区间没有重复的数 前两个条件直接线段树就好啦;而第三个条件:对于每个权值开个set,值为位置 阅读全文
posted @ 2019-04-22 00:50 LuitaryiJack 阅读(266) 评论(0) 推荐(0)
摘要:。。。rt。。。安利一发大佬博客https://www.cnblogs.com/ivanovcraft/p/9019090.html 注意:不要把dfn和rw弄混了。。。 2019.04.19 阅读全文
posted @ 2019-04-19 21:43 LuitaryiJack 阅读(164) 评论(0) 推荐(0)
摘要:嗯~~,好题。。。 用线段树维护区间gcd,按如下法则递归:(记题目中猜测的那个数为x,改动次数为tot) 1.若子区间的gcd是x的倍数,不递归; 2.若子区间的gcd不是x的倍数,且没有递归到叶子结点,那么向下递归 3.若递归到叶子结点,说明这个数需要改动,++tot 4.若在任意时刻有tot> 阅读全文
posted @ 2019-04-19 21:39 LuitaryiJack 阅读(178) 评论(0) 推荐(0)
摘要:借用学长的活:60种颜色是突破口(我咋不知道QAQ) 好像这几道都是线段树+dfs序??于是你可以把60种颜色压进一个long long 里,然后向上合并的时候与一下(太妙了~) 所以记得开long long (又调了一个半小时。。。打代码只花了20分钟???) 2019.04.19 阅读全文
posted @ 2019-04-19 21:31 LuitaryiJack 阅读(134) 评论(0) 推荐(0)
摘要:链剖裸题。。。你值得一做~ 用线段树多维护一个mx,少写一个tag 想想就有些后怕,自己调了一个半小时,结果发现update没有写dfn[u],而写的u。。。 2019.04.19 阅读全文
posted @ 2019-04-19 21:25 LuitaryiJack 阅读(155) 评论(0) 推荐(0)
摘要:给你一个数组a_i​,D(x)为x的约数个数 两种操作: 1.将[l,r]的a_i​替换为D(a_i) 2.输出∑​a_i ( l <= i <= r ) 当区间最大值<=2时,就不会被修改了,因为d(2)=2,d(1)=1。 2019.04.18 阅读全文
posted @ 2019-04-18 19:53 LuitaryiJack 阅读(225) 评论(0) 推荐(0)
摘要:给定数列,区间查询和,区间取模,单点修改。 n,m小于10^5 。。。当区间最值小于模数时,就直接返回就好啦~ 2019.04.18 阅读全文
posted @ 2019-04-18 19:49 LuitaryiJack 阅读(185) 评论(0) 推荐(0)
摘要:就是板子、、、 节点中维护的值,就是1-i之间这个区间内出现了数的次数(权值线段树?雾)。然后当我们查询的时候,就是利用到了前缀和的思想,拿左端点那棵树和右端点一减~ 更新的时候需要新开的点就开,不需要的就连到原来的点上去,相当于更新一条链。这样复杂度是nlogn的。 好想大佬们都把根作为实参转进去 阅读全文
posted @ 2019-04-17 23:47 LuitaryiJack 阅读(120) 评论(0) 推荐(0)
摘要:又来了个维护方差的线段树。。。。 大致推导过程(字丑多包涵QAQ) 注意取模时要加一些100000007防止出现负数。。 也可树状数组,就不多说了(自己没写)(怕是树状数组更易写?) 2019.04.12 阅读全文
posted @ 2019-04-12 00:30 LuitaryiJack 阅读(265) 评论(0) 推荐(0)
摘要:因为开根号能使数字减小得非常快 所以开不了几次(6次?)很大的数就会变成1..... 所以我们可以维护区间最大值,若最大值>1,则继续递归子树,暴力修改叶节点,否则直接return (好像也可以维护区间被开方的次数,但我不会。。。QAQ) upd 2019.06.15 可以用树状数组做,如果这个数已 阅读全文
posted @ 2019-04-11 00:19 LuitaryiJack 阅读(157) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/Jackpei/p/10680710.html 阅读全文
posted @ 2019-04-10 00:00 LuitaryiJack 阅读(119) 评论(0) 推荐(0)
摘要:原题luogu 其实难就难在如何合并区间信息(但是我记得有学长讲过) l(tr)表示包含左端点的最大子段和,r(tr)表示包含右端点的最大子段和,mx(tr)表示该区间的最大子段和,sum(tr)表示该区间的总和 ls表示左儿子,rs表示右儿子 代码: 2019.04.09 阅读全文
posted @ 2019-04-09 23:59 LuitaryiJack 阅读(253) 评论(2) 推荐(0)
摘要:基础线段树(辣鸡的不行) 发现自己线段树除了会维护加法和乘法就啥也不会了QWQ太菜了 瞎写了一个维护gcd的 首先,gcd(x,y)= gcd(x,y-x) 并且很容易推广到n个数,所以我们可以把原数组差分一下, find时就左右子树大力合并gcd,最后和左端点元素本身取gcd; upd时就直接修改 阅读全文
posted @ 2019-04-07 23:38 LuitaryiJack 阅读(346) 评论(0) 推荐(0)
摘要:(被某D姓大佬嘲讽了。。于是乎安利一发大佬的树状数组:https://www.luogu.org/blog/ddy/qian-tan-shu-zhuang-shuo-zu-post) 线段树是个好东西 这篇文章主要是讲一讲 基础,自己的心得; 好,那就开始! 一.定义 线段树(Segment Tre 阅读全文
posted @ 2019-02-05 20:27 LuitaryiJack 阅读(408) 评论(0) 推荐(0)