segment-tree

    -1热度

    1回答

    我想使用Fenwick树范围查询一个字符串。但是我的代码出了问题。 级联错误 Eror是:[Error]'operator + ='(操作数类型是'std :: vector>'和'std :: string {aka std :: basic_string}')匹配 给定一个字符串s ,我想把这个字符串存储在这个fenwick树中。 例如S = ABCDEF,在BIT它谨(顶部 - 底部)A A

    0热度

    1回答

    假设我有一个数组,我必须回答查询,比如找到从索引i到j的所有元素的总和,现在我可以在有根的树上执行此操作,例如回答从节点i到j的路径的查询(On从i到j存在的唯一路径)。 我知道如何找到LCA使用范围最小查询,我们将其分解为线性数组,然后使用分段树,但我无法修改它以查询总和。我怎么做?

    0热度

    1回答

    我遇到了很多问题,可以使用持久细分树来解决,但我似乎无法理解这个概念。 我发现了一些资源,但我仍然无法理解它。

    0热度

    1回答

    给定N个数字列表(1索引),如果一个连续块具有多于K个连续出现的相同元素,则为K排序块。 示例:[2,4,4,5,5,5,3,3]具有索引4至6的3阶块和7至8的2阶块。 4至6也是2阶块。 现在,如果我们给出形式查询:LeftIndex,RightIndex,令-K 我们需要LeftIndex和RightIndex之间要告诉很多订单-K块怎么都存在。 说,如果查询是2,8,2型,然后回答是3的3

    2热度

    1回答

    列表 让说,我有这样的 [[1,3], [2,5], [4,6], [8,10], [12,15], [13,17]] 范围的列表现在我想找到一个范围说[3,11]落在我的算法应该给我所有的范围都在这个范围内。例如,输出这应该是 Output - [1,3], [2,5], [4,6], [8,10] 我如何去解决呢? PS:我知道细分树可能有帮助。在哪里我可以构建树来存储间隔并查询位于间隔内的点

    1热度

    1回答

    如何计算类型为l,r,k的查询的答案,该查找找出在范围l至r中出现至少k次的数组中元素的数目?如何使用Mo的算法?

    0热度

    1回答

    我试图解决,只是涉及范围最小Query.The环节的实施问题的一个很基本的问题是 https://www.hackerearth.com/practice/data-structures/advanced-data-structures/segment-trees/tutorial/ 但我超过了时间限制。请有人帮忙调试我的代码。 #include <bits/stdc++.h> #define

    0热度

    1回答

    我正在尝试在C++中构建分段树。以下为相同的递归函数: int buildTree(int node,int start,int end,int tree[]) { // printf("Node is: %d\n",node); printf("start: %d\tend:%d\tnode:%d\t\n",start,end,node); if (start

    1热度

    1回答

    我已经创建了一个持久性段树,但是现在有一个从某个索引到某个索引的范围更新。如何以更简单的方式更新持久性分段树? 我只是重建持久段树

    0热度

    1回答

    我想知道的快速算法来解决这个简单的问题最小查询: 您将得到一个序列a[0], a[1],..., a[N - 1] 。 您会收到Q查询。所有查询都是查询1或2.处理所有查询。 给你整数l,r,x。更新a[i] = max(a[i], x) for l <= i <= r。 你被赋予整数l,r。找到a[l] + a[l + 1] + ... + a[r]。 我只有一个天真O(NQ)算法,所以请找到更