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)算法,所以請找到更