讨厌的线段树
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
小明讨厌线段树,因为他根本不会证明时间复杂度什么的,虽然他的老师说,访问任意一个区间,在线段树上最多需要遍历个节点,但他根本不信。
所以今天,你作为小明的好朋友,需要写个程序让他认识到什么叫。
具体的情况是这样的:
你有一棵静态开点的线段树,下标的范围是,每个点表示的区间,如果不是叶子结点,那么左子树是,右子树是。
每次询问一个区间,会从根节点开始递归:
case 1:如果当前节点完整被询问区间包含,则return。
case 2:如果左子树跟询问区间有交集,就往左子树递归。
case 3:如果右子树跟询问区间有交集,就往右子树递归。
如果case 2和case 3同时成立,则需要往两边各自递归。
我们定义一次询问的代价是本次询问涉及到的节点个数。
例如,在个点的线段树中,询问区间会涉及到下图中个节点。
请帮助小明计算,对于所有可能的询问区间,涉及了个节点的询问各有多少个。
输入格式
第一行输入。
输出格式
一行个数字,表示答案。
样例输入 #1
10 11
样例输出 #1
1 2 4 10 11 9 6 6 3 1 2
样例解释 #1
解释太费劲,涉及到个节点的询问只有和。
数据范围
对于30%的数据:。
对于70%的数据:。
对于100%的数据:。