I. 线段树
题目要意:你需要用给定的值构造一颗区间和线段树,值可以重复选
关键词:构造,暴力,数据结构/阅读理解
事实上,这也是一个命题作文,原先的线段树题被毙掉了才有的这题
把线段树的外表拨开,事实上,这是一颗完全二叉树
注意到的特殊限制,不大,是的形式,意味着这颗完全二叉树是一颗满二叉树
容易想到每个父节点是由两个子节点相加而成的,并且需要子树高度这么多的合成次数,并且不会出现某一部分可以用合成次数小的节点合成(因为是满二叉树)
所以,我们只需要找到一个次合成的点,并按照它的合成路径构造这颗线段树。
事实上对合成进行优化有甚至更优的做法,但考虑到可能的其他语言提交以及 我在偷懒,std只提供了一种的做法,构造的数据也较弱,常数较优的做法的运行时间会非常快。