直接上图,这就是线段树,可以看到,除了叶子节点,其余的都是区间,这不难想到线段树的用法:点修改和区间修改及询问。
我们可以从上往下建树,也可以反过来。
先说说怎么建树,我们不妨以从上往下来做,当我们想要修改[l,r]区间时,我们首先得修改[l,m]和[m+1,r]那么,我们不难发现这是一种递归。
所以说,从上往下是递归,反过来是迭代。
当我们修改点或区间时,得想到它会影响那些节点,进行修改,注意递归边界就行了。
代码就不给了,网上都有,可以看看后面几个例题就行了。
Posted alex-leaves
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2018/2/17 每日一学 线段树相关的知识,希望对你有一定的参考价值。
直接上图,这就是线段树,可以看到,除了叶子节点,其余的都是区间,这不难想到线段树的用法:点修改和区间修改及询问。
我们可以从上往下建树,也可以反过来。
先说说怎么建树,我们不妨以从上往下来做,当我们想要修改[l,r]区间时,我们首先得修改[l,m]和[m+1,r]那么,我们不难发现这是一种递归。
所以说,从上往下是递归,反过来是迭代。
当我们修改点或区间时,得想到它会影响那些节点,进行修改,注意递归边界就行了。
代码就不给了,网上都有,可以看看后面几个例题就行了。
以上是关于2018/2/17 每日一学 线段树的主要内容,如果未能解决你的问题,请参考以下文章